
! KGEN-generated Fortran source file
!
! Filename    : mo_lu_solve.F90
! Generated at: 2015-07-14 19:56:41
! KGEN version: 0.4.13

#define FASTER  1
#undef DOINLINE


    MODULE mo_lu_solve_vec
        USE kgen_utils_mod, ONLY : kgen_dp, check_t, kgen_init_check, kgen_print_check
        PRIVATE
        PUBLIC lu_slv_vec
        CONTAINS

        ! write subroutines
        ! No subroutines
        ! No module extern variables

#ifdef DOINLINE
!DIR$ ATTRIBUTES FORCEINLINE :: lu_slv01_vec
#else
!DIR$ ATTRIBUTES NOINLINE :: lu_slv01_vec
#endif
        SUBROUTINE lu_slv01_vec(ncol,nb,nz,lu, b)
            USE shr_kind_mod, ONLY: r8 => shr_kind_r8
            IMPLICIT NONE
            !-----------------------------------------------------------------------
            ! ... Dummy args
            !-----------------------------------------------------------------------
            integer :: ncol
            integer :: nz, nb
            REAL(KIND=r8), intent(in)    :: lu(ncol,nz)
            REAL(KIND=r8), intent(inout) :: b(ncol,nb)
            !-----------------------------------------------------------------------
            ! ... Local variables
            !-----------------------------------------------------------------------
            integer :: i
            !-----------------------------------------------------------------------
            ! ... solve L * y = b
            !-----------------------------------------------------------------------
!DIR$ ASSUME_ALIGNED lu:64
!DIR$ ASSUME_ALIGNED b:64
#ifdef FASTER
         b(:,125) = b(:,125) - lu(:,18) * b(:,17)
         b(:,131) = b(:,131) - lu(:,19) * b(:,17)
!DIR$ NOFUSION
         b(:,124) = b(:,124) - lu(:,21) * b(:,18)
         b(:,126) = b(:,126) - lu(:,22) * b(:,18)
!DIR$ NOFUSION
       do i=1,ncol
#else
         b(:,125) = b(:,125) - lu(:,18) * b(:,17)
         b(:,131) = b(:,131) - lu(:,19) * b(:,17)
       do i=1,ncol
         b(i,124) = b(i,124) - lu(i,21) * b(i,18)
         b(i,126) = b(i,126) - lu(i,22) * b(i,18)
#endif
         b(i,79) = b(i,79) - lu(i,24) * b(i,19)
         b(i,131) = b(i,131) - lu(i,25) * b(i,19)
         b(i,41) = b(i,41) - lu(i,27) * b(i,20)
         b(i,131) = b(i,131) - lu(i,28) * b(i,20)
         b(i,96) = b(i,96) - lu(i,30) * b(i,21)
         b(i,131) = b(i,131) - lu(i,31) * b(i,21)
         b(i,134) = b(i,134) - lu(i,32) * b(i,21)
         b(i,23) = b(i,23) - lu(i,34) * b(i,22)
         b(i,65) = b(i,65) - lu(i,35) * b(i,22)
         b(i,125) = b(i,125) - lu(i,36) * b(i,22)
         b(i,131) = b(i,131) - lu(i,37) * b(i,22)
         b(i,31) = b(i,31) - lu(i,39) * b(i,23)
         b(i,131) = b(i,131) - lu(i,40) * b(i,23)
         b(i,56) = b(i,56) - lu(i,42) * b(i,24)
         b(i,131) = b(i,131) - lu(i,43) * b(i,24)
         b(i,88) = b(i,88) - lu(i,45) * b(i,25)
         b(i,122) = b(i,122) - lu(i,46) * b(i,25)
         b(i,36) = b(i,36) - lu(i,48) * b(i,26)
         b(i,134) = b(i,134) - lu(i,49) * b(i,26)
         b(i,120) = b(i,120) - lu(i,51) * b(i,27)
         b(i,120) = b(i,120) - lu(i,54) * b(i,28)
         b(i,126) = b(i,126) - lu(i,56) * b(i,29)
         b(i,122) = b(i,122) - lu(i,58) * b(i,30)
         b(i,125) = b(i,125) - lu(i,59) * b(i,30)
         b(i,131) = b(i,131) - lu(i,60) * b(i,30)
         b(i,66) = b(i,66) - lu(i,62) * b(i,31)
         b(i,125) = b(i,125) - lu(i,63) * b(i,31)
         b(i,130) = b(i,130) - lu(i,64) * b(i,31)
         b(i,88) = b(i,88) - lu(i,66) * b(i,32)
         b(i,122) = b(i,122) - lu(i,67) * b(i,32)
         b(i,126) = b(i,126) - lu(i,68) * b(i,32)
         b(i,118) = b(i,118) - lu(i,70) * b(i,33)
         b(i,126) = b(i,126) - lu(i,71) * b(i,33)
         b(i,88) = b(i,88) - lu(i,73) * b(i,34)
         b(i,127) = b(i,127) - lu(i,74) * b(i,34)
         b(i,104) = b(i,104) - lu(i,76) * b(i,35)
         b(i,125) = b(i,125) - lu(i,77) * b(i,35)
         b(i,131) = b(i,131) - lu(i,78) * b(i,35)
         b(i,99) = b(i,99) - lu(i,81) * b(i,36)
         b(i,121) = b(i,121) - lu(i,82) * b(i,36)
         b(i,134) = b(i,134) - lu(i,83) * b(i,36)
         b(i,91) = b(i,91) - lu(i,85) * b(i,37)
         b(i,117) = b(i,117) - lu(i,86) * b(i,37)
         b(i,126) = b(i,126) - lu(i,87) * b(i,37)
         b(i,131) = b(i,131) - lu(i,88) * b(i,37)
         b(i,134) = b(i,134) - lu(i,89) * b(i,37)
         b(i,64) = b(i,64) - lu(i,91) * b(i,38)
         b(i,81) = b(i,81) - lu(i,92) * b(i,38)
         b(i,103) = b(i,103) - lu(i,93) * b(i,38)
         b(i,125) = b(i,125) - lu(i,94) * b(i,38)
         b(i,131) = b(i,131) - lu(i,95) * b(i,38)
         b(i,99) = b(i,99) - lu(i,97) * b(i,39)
         b(i,125) = b(i,125) - lu(i,98) * b(i,39)
         b(i,131) = b(i,131) - lu(i,99) * b(i,39)
         b(i,132) = b(i,132) - lu(i,100) * b(i,39)
         b(i,133) = b(i,133) - lu(i,101) * b(i,39)
         b(i,121) = b(i,121) - lu(i,103) * b(i,40)
         b(i,129) = b(i,129) - lu(i,104) * b(i,40)
         b(i,130) = b(i,130) - lu(i,105) * b(i,40)
         b(i,132) = b(i,132) - lu(i,106) * b(i,40)
         b(i,133) = b(i,133) - lu(i,107) * b(i,40)
         b(i,80) = b(i,80) - lu(i,109) * b(i,41)
         b(i,104) = b(i,104) - lu(i,110) * b(i,41)
         b(i,125) = b(i,125) - lu(i,111) * b(i,41)
         b(i,129) = b(i,129) - lu(i,112) * b(i,41)
         b(i,130) = b(i,130) - lu(i,113) * b(i,41)
         b(i,135) = b(i,135) - lu(i,114) * b(i,41)
         b(i,77) = b(i,77) - lu(i,116) * b(i,42)
         b(i,104) = b(i,104) - lu(i,117) * b(i,42)
         b(i,115) = b(i,115) - lu(i,118) * b(i,42)
         b(i,131) = b(i,131) - lu(i,119) * b(i,42)
         b(i,112) = b(i,112) - lu(i,121) * b(i,43)
         b(i,114) = b(i,114) - lu(i,122) * b(i,43)
         b(i,125) = b(i,125) - lu(i,123) * b(i,43)
         b(i,131) = b(i,131) - lu(i,124) * b(i,43)
         b(i,91) = b(i,91) - lu(i,126) * b(i,44)
         b(i,104) = b(i,104) - lu(i,127) * b(i,44)
         b(i,125) = b(i,125) - lu(i,128) * b(i,44)
         b(i,131) = b(i,131) - lu(i,129) * b(i,44)
         b(i,110) = b(i,110) - lu(i,131) * b(i,45)
         b(i,131) = b(i,131) - lu(i,132) * b(i,45)
         b(i,134) = b(i,134) - lu(i,133) * b(i,45)
         b(i,99) = b(i,99) - lu(i,135) * b(i,46)
         b(i,116) = b(i,116) - lu(i,136) * b(i,46)
         b(i,121) = b(i,121) - lu(i,137) * b(i,46)
         b(i,124) = b(i,124) - lu(i,138) * b(i,46)
         b(i,110) = b(i,110) - lu(i,140) * b(i,47)
         b(i,131) = b(i,131) - lu(i,141) * b(i,47)
         b(i,82) = b(i,82) - lu(i,143) * b(i,48)
         b(i,99) = b(i,99) - lu(i,144) * b(i,48)
         b(i,103) = b(i,103) - lu(i,145) * b(i,48)
         b(i,116) = b(i,116) - lu(i,146) * b(i,48)
         b(i,121) = b(i,121) - lu(i,147) * b(i,48)
         b(i,127) = b(i,127) - lu(i,148) * b(i,48)
         b(i,131) = b(i,131) - lu(i,149) * b(i,48)
         b(i,109) = b(i,109) - lu(i,151) * b(i,49)
         b(i,130) = b(i,130) - lu(i,152) * b(i,49)
         b(i,131) = b(i,131) - lu(i,153) * b(i,49)
         b(i,119) = b(i,119) - lu(i,155) * b(i,50)
         b(i,127) = b(i,127) - lu(i,156) * b(i,50)
         b(i,131) = b(i,131) - lu(i,157) * b(i,50)
         b(i,134) = b(i,134) - lu(i,158) * b(i,50)
         b(i,135) = b(i,135) - lu(i,159) * b(i,50)
         b(i,65) = b(i,65) - lu(i,161) * b(i,51)
         b(i,66) = b(i,66) - lu(i,162) * b(i,51)
         b(i,81) = b(i,81) - lu(i,163) * b(i,51)
         b(i,109) = b(i,109) - lu(i,164) * b(i,51)
         b(i,131) = b(i,131) - lu(i,165) * b(i,51)
         b(i,80) = b(i,80) - lu(i,167) * b(i,52)
         b(i,96) = b(i,96) - lu(i,168) * b(i,52)
         b(i,125) = b(i,125) - lu(i,169) * b(i,52)
         b(i,131) = b(i,131) - lu(i,170) * b(i,52)
         b(i,134) = b(i,134) - lu(i,171) * b(i,52)
         b(i,106) = b(i,106) - lu(i,173) * b(i,53)
         b(i,115) = b(i,115) - lu(i,174) * b(i,53)
         b(i,131) = b(i,131) - lu(i,175) * b(i,53)
         b(i,134) = b(i,134) - lu(i,176) * b(i,53)
         b(i,135) = b(i,135) - lu(i,177) * b(i,53)
         b(i,64) = b(i,64) - lu(i,179) * b(i,54)
         b(i,125) = b(i,125) - lu(i,180) * b(i,54)
         b(i,129) = b(i,129) - lu(i,181) * b(i,54)
         b(i,130) = b(i,130) - lu(i,182) * b(i,54)
         b(i,135) = b(i,135) - lu(i,183) * b(i,54)
         b(i,77) = b(i,77) - lu(i,185) * b(i,55)
         b(i,91) = b(i,91) - lu(i,186) * b(i,55)
         b(i,115) = b(i,115) - lu(i,187) * b(i,55)
         b(i,131) = b(i,131) - lu(i,188) * b(i,55)
         b(i,95) = b(i,95) - lu(i,190) * b(i,56)
         b(i,120) = b(i,120) - lu(i,191) * b(i,56)
         b(i,125) = b(i,125) - lu(i,192) * b(i,56)
         b(i,135) = b(i,135) - lu(i,193) * b(i,56)
         b(i,115) = b(i,115) - lu(i,195) * b(i,57)
         b(i,119) = b(i,119) - lu(i,196) * b(i,57)
         b(i,130) = b(i,130) - lu(i,197) * b(i,57)
         b(i,131) = b(i,131) - lu(i,198) * b(i,57)
         b(i,132) = b(i,132) - lu(i,199) * b(i,57)
         b(i,135) = b(i,135) - lu(i,200) * b(i,57)
         b(i,72) = b(i,72) - lu(i,202) * b(i,58)
         b(i,85) = b(i,85) - lu(i,203) * b(i,58)
         b(i,86) = b(i,86) - lu(i,204) * b(i,58)
         b(i,92) = b(i,92) - lu(i,205) * b(i,58)
         b(i,120) = b(i,120) - lu(i,206) * b(i,58)
         b(i,121) = b(i,121) - lu(i,207) * b(i,58)
         b(i,80) = b(i,80) - lu(i,209) * b(i,59)
         b(i,98) = b(i,98) - lu(i,210) * b(i,59)
         b(i,107) = b(i,107) - lu(i,211) * b(i,59)
         b(i,113) = b(i,113) - lu(i,212) * b(i,59)
         b(i,125) = b(i,125) - lu(i,213) * b(i,59)
         b(i,131) = b(i,131) - lu(i,214) * b(i,59)
         b(i,120) = b(i,120) - lu(i,216) * b(i,60)
         b(i,125) = b(i,125) - lu(i,217) * b(i,60)
         b(i,130) = b(i,130) - lu(i,218) * b(i,60)
         b(i,131) = b(i,131) - lu(i,219) * b(i,60)
         b(i,132) = b(i,132) - lu(i,220) * b(i,60)
         b(i,134) = b(i,134) - lu(i,221) * b(i,60)
         b(i,92) = b(i,92) - lu(i,223) * b(i,61)
         b(i,120) = b(i,120) - lu(i,224) * b(i,61)
         b(i,122) = b(i,122) - lu(i,225) * b(i,61)
         b(i,129) = b(i,129) - lu(i,226) * b(i,61)
         b(i,115) = b(i,115) - lu(i,228) * b(i,62)
         b(i,119) = b(i,119) - lu(i,229) * b(i,62)
         b(i,131) = b(i,131) - lu(i,230) * b(i,62)
         b(i,134) = b(i,134) - lu(i,231) * b(i,62)
         b(i,135) = b(i,135) - lu(i,232) * b(i,62)
         b(i,64) = b(i,64) - lu(i,234) * b(i,63)
         b(i,83) = b(i,83) - lu(i,235) * b(i,63)
         b(i,103) = b(i,103) - lu(i,236) * b(i,63)
         b(i,123) = b(i,123) - lu(i,237) * b(i,63)
         b(i,125) = b(i,125) - lu(i,238) * b(i,63)
         b(i,131) = b(i,131) - lu(i,239) * b(i,63)
         b(i,135) = b(i,135) - lu(i,240) * b(i,63)
         b(i,125) = b(i,125) - lu(i,242) * b(i,64)
         b(i,131) = b(i,131) - lu(i,243) * b(i,64)
         b(i,134) = b(i,134) - lu(i,244) * b(i,64)
         b(i,66) = b(i,66) - lu(i,247) * b(i,65)
         b(i,81) = b(i,81) - lu(i,248) * b(i,65)
         b(i,109) = b(i,109) - lu(i,249) * b(i,65)
         b(i,125) = b(i,125) - lu(i,250) * b(i,65)
         b(i,129) = b(i,129) - lu(i,251) * b(i,65)
         b(i,130) = b(i,130) - lu(i,252) * b(i,65)
         b(i,131) = b(i,131) - lu(i,253) * b(i,65)
         b(i,81) = b(i,81) - lu(i,255) * b(i,66)
         b(i,103) = b(i,103) - lu(i,256) * b(i,66)
         b(i,109) = b(i,109) - lu(i,257) * b(i,66)
         b(i,115) = b(i,115) - lu(i,258) * b(i,66)
         b(i,125) = b(i,125) - lu(i,259) * b(i,66)
         b(i,89) = b(i,89) - lu(i,261) * b(i,67)
         b(i,104) = b(i,104) - lu(i,262) * b(i,67)
         b(i,105) = b(i,105) - lu(i,263) * b(i,67)
         b(i,125) = b(i,125) - lu(i,264) * b(i,67)
         b(i,131) = b(i,131) - lu(i,265) * b(i,67)
         b(i,134) = b(i,134) - lu(i,266) * b(i,67)
         b(i,135) = b(i,135) - lu(i,267) * b(i,67)
         b(i,125) = b(i,125) - lu(i,269) * b(i,68)
         b(i,131) = b(i,131) - lu(i,270) * b(i,68)
         b(i,135) = b(i,135) - lu(i,271) * b(i,68)
         b(i,107) = b(i,107) - lu(i,273) * b(i,69)
         b(i,110) = b(i,110) - lu(i,274) * b(i,69)
         b(i,111) = b(i,111) - lu(i,275) * b(i,69)
         b(i,113) = b(i,113) - lu(i,276) * b(i,69)
         b(i,125) = b(i,125) - lu(i,277) * b(i,69)
         b(i,131) = b(i,131) - lu(i,278) * b(i,69)
         b(i,135) = b(i,135) - lu(i,279) * b(i,69)
        enddo
        END SUBROUTINE lu_slv01_vec

#ifdef DOINLINE
!DIR$ ATTRIBUTES FORCEINLINE :: lu_slv02_vec
#else
!DIR$ ATTRIBUTES NOINLINE :: lu_slv02_vec
#endif
        SUBROUTINE lu_slv02_vec(ncol,nb,nz,lu, b)
            USE shr_kind_mod, ONLY: r8 => shr_kind_r8
            IMPLICIT NONE
            !-----------------------------------------------------------------------
            ! ... Dummy args
            !-----------------------------------------------------------------------
            integer :: ncol,nb,nz
            REAL(KIND=r8), intent(in) :: lu(ncol,nz)
            REAL(KIND=r8), intent(inout) :: b(ncol,nb)
            !-----------------------------------------------------------------------
            ! ... Local variables
            !-----------------------------------------------------------------------
            integer :: i
            !-----------------------------------------------------------------------
            ! ... solve L * y = b
            !-----------------------------------------------------------------------
!DIR$ ASSUME_ALIGNED lu:64
!DIR$ ASSUME_ALIGNED b:64
       do i=1,ncol
         b(i,84) =   b(i,84) - lu(i,281) * b(i,70)
         b(i,118) = b(i,118) - lu(i,282) * b(i,70)
         b(i,121) = b(i,121) - lu(i,283) * b(i,70)
         b(i,128) = b(i,128) - lu(i,284) * b(i,70)
         b(i,130) = b(i,130) - lu(i,285) * b(i,70)
         b(i,132) = b(i,132) - lu(i,286) * b(i,70)
         b(i,133) = b(i,133) - lu(i,287) * b(i,70)
       enddo

       do i=1,ncol
         b(i,105) = b(i,105) - lu(i,289) * b(i,71)
         b(i,114) = b(i,114) - lu(i,290) * b(i,71)
         b(i,125) = b(i,125) - lu(i,291) * b(i,71)
         b(i,130) = b(i,130) - lu(i,292) * b(i,71)
         b(i,131) = b(i,131) - lu(i,293) * b(i,71)
         b(i,132) = b(i,132) - lu(i,294) * b(i,71)
         b(i,135) = b(i,135) - lu(i,295) * b(i,71)
         b(i,85) = b(i,85) - lu(i,297) * b(i,72)
         b(i,86) = b(i,86) - lu(i,298) * b(i,72)
         b(i,92) = b(i,92) - lu(i,299) * b(i,72)
         b(i,103) = b(i,103) - lu(i,300) * b(i,72)
         b(i,120) = b(i,120) - lu(i,301) * b(i,72)
         b(i,121) = b(i,121) - lu(i,302) * b(i,72)
         b(i,98) = b(i,98) - lu(i,304) * b(i,73)
         b(i,107) = b(i,107) - lu(i,305) * b(i,73)
         b(i,113) = b(i,113) - lu(i,306) * b(i,73)
         b(i,123) = b(i,123) - lu(i,307) * b(i,73)
         b(i,125) = b(i,125) - lu(i,308) * b(i,73)
         b(i,130) = b(i,130) - lu(i,309) * b(i,73)
         b(i,131) = b(i,131) - lu(i,310) * b(i,73)
         b(i,132) = b(i,132) - lu(i,311) * b(i,73)
         b(i,117) = b(i,117) - lu(i,313) * b(i,74)
         b(i,121) = b(i,121) - lu(i,314) * b(i,74)
         b(i,125) = b(i,125) - lu(i,315) * b(i,74)
         b(i,126) = b(i,126) - lu(i,316) * b(i,74)
         b(i,131) = b(i,131) - lu(i,317) * b(i,74)
         b(i,134) = b(i,134) - lu(i,318) * b(i,74)
         b(i,119) = b(i,119) - lu(i,320) * b(i,75)
         b(i,131) = b(i,131) - lu(i,321) * b(i,75)
         b(i,134) = b(i,134) - lu(i,322) * b(i,75)
         b(i,77) = b(i,77) - lu(i,325) * b(i,76)
         b(i,79) = b(i,79) - lu(i,326) * b(i,76)
         b(i,80) = b(i,80) - lu(i,327) * b(i,76)
         b(i,91) = b(i,91) - lu(i,328) * b(i,76)
         b(i,104) = b(i,104) - lu(i,329) * b(i,76)
         b(i,115) = b(i,115) - lu(i,330) * b(i,76)
         b(i,125) = b(i,125) - lu(i,331) * b(i,76)
         b(i,131) = b(i,131) - lu(i,332) * b(i,76)
         b(i,135) = b(i,135) - lu(i,333) * b(i,76)
         b(i,104) = b(i,104) - lu(i,336) * b(i,77)
         b(i,115) = b(i,115) - lu(i,337) * b(i,77)
         b(i,125) = b(i,125) - lu(i,338) * b(i,77)
         b(i,129) = b(i,129) - lu(i,339) * b(i,77)
         b(i,130) = b(i,130) - lu(i,340) * b(i,77)
         b(i,131) = b(i,131) - lu(i,341) * b(i,77)
         b(i,85) = b(i,85) - lu(i,345) * b(i,78)
         b(i,86) = b(i,86) - lu(i,346) * b(i,78)
         b(i,87) = b(i,87) - lu(i,347) * b(i,78)
         b(i,92) = b(i,92) - lu(i,348) * b(i,78)
         b(i,103) = b(i,103) - lu(i,349) * b(i,78)
         b(i,120) = b(i,120) - lu(i,350) * b(i,78)
         b(i,121) = b(i,121) - lu(i,351) * b(i,78)
         b(i,122) = b(i,122) - lu(i,352) * b(i,78)
         b(i,129) = b(i,129) - lu(i,353) * b(i,78)
         b(i,80) = b(i,80) - lu(i,359) * b(i,79)
         b(i,91) = b(i,91) - lu(i,360) * b(i,79)
         b(i,104) = b(i,104) - lu(i,361) * b(i,79)
         b(i,109) = b(i,109) - lu(i,362) * b(i,79)
         b(i,115) = b(i,115) - lu(i,363) * b(i,79)
         b(i,125) = b(i,125) - lu(i,364) * b(i,79)
         b(i,129) = b(i,129) - lu(i,365) * b(i,79)
         b(i,130) = b(i,130) - lu(i,366) * b(i,79)
         b(i,131) = b(i,131) - lu(i,367) * b(i,79)
         b(i,135) = b(i,135) - lu(i,368) * b(i,79)
         b(i,106) = b(i,106) - lu(i,370) * b(i,80)
         b(i,115) = b(i,115) - lu(i,371) * b(i,80)
         b(i,119) = b(i,119) - lu(i,372) * b(i,80)
         b(i,131) = b(i,131) - lu(i,373) * b(i,80)
         b(i,134) = b(i,134) - lu(i,374) * b(i,80)
         b(i,103) = b(i,103) - lu(i,376) * b(i,81)
         b(i,125) = b(i,125) - lu(i,377) * b(i,81)
         b(i,131) = b(i,131) - lu(i,378) * b(i,81)
         b(i,116) = b(i,116) - lu(i,380) * b(i,82)
         b(i,120) = b(i,120) - lu(i,381) * b(i,82)
         b(i,121) = b(i,121) - lu(i,382) * b(i,82)
         b(i,123) = b(i,123) - lu(i,383) * b(i,82)
         b(i,127) = b(i,127) - lu(i,384) * b(i,82)
         b(i,131) = b(i,131) - lu(i,385) * b(i,82)
         b(i,95) = b(i,95) - lu(i,389) * b(i,83)
         b(i,120) = b(i,120) - lu(i,390) * b(i,83)
         b(i,125) = b(i,125) - lu(i,391) * b(i,83)
         b(i,129) = b(i,129) - lu(i,392) * b(i,83)
         b(i,130) = b(i,130) - lu(i,393) * b(i,83)
         b(i,131) = b(i,131) - lu(i,394) * b(i,83)
         b(i,135) = b(i,135) - lu(i,395) * b(i,83)
         b(i,117) = b(i,117) - lu(i,398) * b(i,84)
         b(i,118) = b(i,118) - lu(i,399) * b(i,84)
         b(i,121) = b(i,121) - lu(i,400) * b(i,84)
         b(i,126) = b(i,126) - lu(i,401) * b(i,84)
         b(i,128) = b(i,128) - lu(i,402) * b(i,84)
         b(i,131) = b(i,131) - lu(i,403) * b(i,84)
         b(i,134) = b(i,134) - lu(i,404) * b(i,84)
         b(i,86) = b(i,86) - lu(i,406) * b(i,85)
         b(i,87) = b(i,87) - lu(i,407) * b(i,85)
         b(i,92) = b(i,92) - lu(i,408) * b(i,85)
         b(i,120) = b(i,120) - lu(i,409) * b(i,85)
         b(i,121) = b(i,121) - lu(i,410) * b(i,85)
         b(i,122) = b(i,122) - lu(i,411) * b(i,85)
         b(i,129) = b(i,129) - lu(i,412) * b(i,85)
         b(i,87) = b(i,87) - lu(i,415) * b(i,86)
         b(i,92) = b(i,92) - lu(i,416) * b(i,86)
         b(i,120) = b(i,120) - lu(i,417) * b(i,86)
         b(i,121) = b(i,121) - lu(i,418) * b(i,86)
         b(i,122) = b(i,122) - lu(i,419) * b(i,86)
         b(i,129) = b(i,129) - lu(i,420) * b(i,86)
         b(i,92) = b(i,92) - lu(i,426) * b(i,87)
         b(i,103) = b(i,103) - lu(i,427) * b(i,87)
         b(i,120) = b(i,120) - lu(i,428) * b(i,87)
         b(i,121) = b(i,121) - lu(i,429) * b(i,87)
         b(i,122) = b(i,122) - lu(i,430) * b(i,87)
         b(i,129) = b(i,129) - lu(i,431) * b(i,87)
         b(i,108) = b(i,108) - lu(i,434) * b(i,88)
         b(i,119) = b(i,119) - lu(i,435) * b(i,88)
         b(i,127) = b(i,127) - lu(i,436) * b(i,88)
         b(i,131) = b(i,131) - lu(i,437) * b(i,88)
         b(i,132) = b(i,132) - lu(i,438) * b(i,88)
         b(i,133) = b(i,133) - lu(i,439) * b(i,88)
         b(i,134) = b(i,134) - lu(i,440) * b(i,88)
         b(i,104) = b(i,104) - lu(i,443) * b(i,89)
         b(i,105) = b(i,105) - lu(i,444) * b(i,89)
         b(i,120) = b(i,120) - lu(i,445) * b(i,89)
         b(i,125) = b(i,125) - lu(i,446) * b(i,89)
         b(i,129) = b(i,129) - lu(i,447) * b(i,89)
         b(i,130) = b(i,130) - lu(i,448) * b(i,89)
         b(i,131) = b(i,131) - lu(i,449) * b(i,89)
         b(i,134) = b(i,134) - lu(i,450) * b(i,89)
         b(i,135) = b(i,135) - lu(i,451) * b(i,89)
         b(i,118) = b(i,118) - lu(i,453) * b(i,90)
         b(i,121) = b(i,121) - lu(i,454) * b(i,90)
         b(i,122) = b(i,122) - lu(i,455) * b(i,90)
         b(i,127) = b(i,127) - lu(i,456) * b(i,90)
         b(i,131) = b(i,131) - lu(i,457) * b(i,90)
         b(i,134) = b(i,134) - lu(i,458) * b(i,90)
         b(i,104) = b(i,104) - lu(i,463) * b(i,91)
         b(i,119) = b(i,119) - lu(i,464) * b(i,91)
         b(i,120) = b(i,120) - lu(i,465) * b(i,91)
         b(i,125) = b(i,125) - lu(i,466) * b(i,91)
         b(i,129) = b(i,129) - lu(i,467) * b(i,91)
         b(i,130) = b(i,130) - lu(i,468) * b(i,91)
         b(i,131) = b(i,131) - lu(i,469) * b(i,91)
         b(i,135) = b(i,135) - lu(i,470) * b(i,91)
         b(i,103) = b(i,103) - lu(i,477) * b(i,92)
         b(i,120) = b(i,120) - lu(i,478) * b(i,92)
         b(i,121) = b(i,121) - lu(i,479) * b(i,92)
         b(i,122) = b(i,122) - lu(i,480) * b(i,92)
         b(i,127) = b(i,127) - lu(i,481) * b(i,92)
         b(i,129) = b(i,129) - lu(i,482) * b(i,92)
         b(i,130) = b(i,130) - lu(i,483) * b(i,92)
         b(i,131) = b(i,131) - lu(i,484) * b(i,92)
         b(i,117) = b(i,117) - lu(i,487) * b(i,93)
         b(i,121) = b(i,121) - lu(i,488) * b(i,93)
         b(i,124) = b(i,124) - lu(i,489) * b(i,93)
         b(i,126) = b(i,126) - lu(i,490) * b(i,93)
         b(i,131) = b(i,131) - lu(i,491) * b(i,93)
         b(i,134) = b(i,134) - lu(i,492) * b(i,93)
         b(i,101) = b(i,101) - lu(i,495) * b(i,94)
         b(i,102) = b(i,102) - lu(i,496) * b(i,94)
         b(i,103) = b(i,103) - lu(i,497) * b(i,94)
         b(i,107) = b(i,107) - lu(i,498) * b(i,94)
         b(i,111) = b(i,111) - lu(i,499) * b(i,94)
         b(i,113) = b(i,113) - lu(i,500) * b(i,94)
         b(i,114) = b(i,114) - lu(i,501) * b(i,94)
         b(i,119) = b(i,119) - lu(i,502) * b(i,94)
         b(i,123) = b(i,123) - lu(i,503) * b(i,94)
         b(i,125) = b(i,125) - lu(i,504) * b(i,94)
         b(i,131) = b(i,131) - lu(i,505) * b(i,94)
         b(i,132) = b(i,132) - lu(i,506) * b(i,94)
         b(i,134) = b(i,134) - lu(i,507) * b(i,94)
         b(i,135) = b(i,135) - lu(i,508) * b(i,94)
         b(i,103) = b(i,103) - lu(i,511) * b(i,95)
         b(i,125) = b(i,125) - lu(i,512) * b(i,95)
         b(i,131) = b(i,131) - lu(i,513) * b(i,95)
         b(i,135) = b(i,135) - lu(i,514) * b(i,95)
         b(i,104) = b(i,104) - lu(i,518) * b(i,96)
         b(i,106) = b(i,106) - lu(i,519) * b(i,96)
         b(i,115) = b(i,115) - lu(i,520) * b(i,96)
         b(i,119) = b(i,119) - lu(i,521) * b(i,96)
         b(i,120) = b(i,120) - lu(i,522) * b(i,96)
         b(i,125) = b(i,125) - lu(i,523) * b(i,96)
         b(i,129) = b(i,129) - lu(i,524) * b(i,96)
         b(i,130) = b(i,130) - lu(i,525) * b(i,96)
         b(i,131) = b(i,131) - lu(i,526) * b(i,96)
         b(i,134) = b(i,134) - lu(i,527) * b(i,96)
         b(i,135) = b(i,135) - lu(i,528) * b(i,96)
         b(i,103) = b(i,103) - lu(i,531) * b(i,97)
         b(i,110) = b(i,110) - lu(i,532) * b(i,97)
         b(i,125) = b(i,125) - lu(i,533) * b(i,97)
         b(i,130) = b(i,130) - lu(i,534) * b(i,97)
         b(i,131) = b(i,131) - lu(i,535) * b(i,97)
         b(i,132) = b(i,132) - lu(i,536) * b(i,97)
         b(i,135) = b(i,135) - lu(i,537) * b(i,97)
         b(i,106) = b(i,106) - lu(i,541) * b(i,98)
         b(i,107) = b(i,107) - lu(i,542) * b(i,98)
         b(i,113) = b(i,113) - lu(i,543) * b(i,98)
         b(i,115) = b(i,115) - lu(i,544) * b(i,98)
         b(i,119) = b(i,119) - lu(i,545) * b(i,98)
         b(i,125) = b(i,125) - lu(i,546) * b(i,98)
         b(i,129) = b(i,129) - lu(i,547) * b(i,98)
         b(i,130) = b(i,130) - lu(i,548) * b(i,98)
         b(i,131) = b(i,131) - lu(i,549) * b(i,98)
         b(i,134) = b(i,134) - lu(i,550) * b(i,98)
      enddo
        END SUBROUTINE lu_slv02_vec

#ifdef DOINLINE
!DIR$ ATTRIBUTES FORCEINLINE :: lu_slv03_vec
#else
!DIR$ ATTRIBUTES NOINLINE :: lu_slv03_vec
#endif
        SUBROUTINE lu_slv03_vec(ncol,nb,nz,lu, b)
            USE shr_kind_mod, ONLY: r8 => shr_kind_r8
            IMPLICIT NONE
            !-----------------------------------------------------------------------
            ! ... Dummy args
            !-----------------------------------------------------------------------
            integer*4 :: ncol,nb,nz
            REAL(KIND=r8), intent(in) :: lu(ncol,nz)
            REAL(KIND=r8), intent(inout) :: b(ncol,nb)
            !-----------------------------------------------------------------------
            ! ... Local variables
            !-----------------------------------------------------------------------
            integer :: i
            !-----------------------------------------------------------------------
            ! ... solve L * y = b
            !-----------------------------------------------------------------------
!DIR$ ASSUME_ALIGNED lu:64
!DIR$ ASSUME_ALIGNED b:64
       do i=1,ncol
         b(i,116) = b(i,116) - lu(i,553) * b(i,99)
         b(i,121) = b(i,121) - lu(i,554) * b(i,99)
         b(i,125) = b(i,125) - lu(i,555) * b(i,99)
         b(i,131) = b(i,131) - lu(i,556) * b(i,99)
         b(i,134) = b(i,134) - lu(i,557) * b(i,99)
         b(i,117) = b(i,117) - lu(i,561) * b(i,100)
         b(i,121) = b(i,121) - lu(i,562) * b(i,100)
         b(i,124) = b(i,124) - lu(i,563) * b(i,100)
         b(i,126) = b(i,126) - lu(i,564) * b(i,100)
         b(i,130) = b(i,130) - lu(i,565) * b(i,100)
         b(i,131) = b(i,131) - lu(i,566) * b(i,100)
         b(i,132) = b(i,132) - lu(i,567) * b(i,100)
         b(i,133) = b(i,133) - lu(i,568) * b(i,100)
         b(i,134) = b(i,134) - lu(i,569) * b(i,100)
         b(i,103) = b(i,103) - lu(i,573) * b(i,101)
         b(i,107) = b(i,107) - lu(i,574) * b(i,101)
         b(i,110) = b(i,110) - lu(i,575) * b(i,101)
         b(i,113) = b(i,113) - lu(i,576) * b(i,101)
         b(i,125) = b(i,125) - lu(i,577) * b(i,101)
         b(i,129) = b(i,129) - lu(i,578) * b(i,101)
         b(i,130) = b(i,130) - lu(i,579) * b(i,101)
         b(i,131) = b(i,131) - lu(i,580) * b(i,101)
         b(i,132) = b(i,132) - lu(i,581) * b(i,101)
         b(i,134) = b(i,134) - lu(i,582) * b(i,101)
         b(i,135) = b(i,135) - lu(i,583) * b(i,101)
         b(i,103) = b(i,103) - lu(i,588) * b(i,102)
         b(i,104) = b(i,104) - lu(i,589) * b(i,102)
         b(i,105) = b(i,105) - lu(i,590) * b(i,102)
         b(i,109) = b(i,109) - lu(i,591) * b(i,102)
         b(i,119) = b(i,119) - lu(i,592) * b(i,102)
         b(i,120) = b(i,120) - lu(i,593) * b(i,102)
         b(i,123) = b(i,123) - lu(i,594) * b(i,102)
         b(i,125) = b(i,125) - lu(i,595) * b(i,102)
         b(i,129) = b(i,129) - lu(i,596) * b(i,102)
         b(i,130) = b(i,130) - lu(i,597) * b(i,102)
         b(i,131) = b(i,131) - lu(i,598) * b(i,102)
         b(i,132) = b(i,132) - lu(i,599) * b(i,102)
         b(i,134) = b(i,134) - lu(i,600) * b(i,102)
         b(i,135) = b(i,135) - lu(i,601) * b(i,102)
         b(i,125) = b(i,125) - lu(i,603) * b(i,103)
         b(i,127) = b(i,127) - lu(i,604) * b(i,103)
         b(i,131) = b(i,131) - lu(i,605) * b(i,103)
         b(i,115) = b(i,115) - lu(i,608) * b(i,104)
         b(i,119) = b(i,119) - lu(i,609) * b(i,104)
         b(i,125) = b(i,125) - lu(i,610) * b(i,104)
         b(i,127) = b(i,127) - lu(i,611) * b(i,104)
         b(i,131) = b(i,131) - lu(i,612) * b(i,104)
         b(i,132) = b(i,132) - lu(i,613) * b(i,104)
         b(i,133) = b(i,133) - lu(i,614) * b(i,104)
         b(i,134) = b(i,134) - lu(i,615) * b(i,104)
         b(i,109) = b(i,109) - lu(i,617) * b(i,105)
         b(i,115) = b(i,115) - lu(i,618) * b(i,105)
         b(i,125) = b(i,125) - lu(i,619) * b(i,105)
         b(i,131) = b(i,131) - lu(i,620) * b(i,105)
         b(i,135) = b(i,135) - lu(i,621) * b(i,105)
         b(i,109) = b(i,109) - lu(i,626) * b(i,106)
         b(i,115) = b(i,115) - lu(i,627) * b(i,106)
         b(i,119) = b(i,119) - lu(i,628) * b(i,106)
         b(i,120) = b(i,120) - lu(i,629) * b(i,106)
         b(i,125) = b(i,125) - lu(i,630) * b(i,106)
         b(i,129) = b(i,129) - lu(i,631) * b(i,106)
         b(i,130) = b(i,130) - lu(i,632) * b(i,106)
         b(i,131) = b(i,131) - lu(i,633) * b(i,106)
         b(i,134) = b(i,134) - lu(i,634) * b(i,106)
         b(i,135) = b(i,135) - lu(i,635) * b(i,106)
         b(i,109) = b(i,109) - lu(i,638) * b(i,107)
         b(i,112) = b(i,112) - lu(i,639) * b(i,107)
         b(i,114) = b(i,114) - lu(i,640) * b(i,107)
         b(i,115) = b(i,115) - lu(i,641) * b(i,107)
         b(i,123) = b(i,123) - lu(i,642) * b(i,107)
         b(i,125) = b(i,125) - lu(i,643) * b(i,107)
         b(i,127) = b(i,127) - lu(i,644) * b(i,107)
         b(i,131) = b(i,131) - lu(i,645) * b(i,107)
         b(i,134) = b(i,134) - lu(i,646) * b(i,107)
         b(i,135) = b(i,135) - lu(i,647) * b(i,107)
         b(i,117) = b(i,117) - lu(i,651) * b(i,108)
         b(i,119) = b(i,119) - lu(i,652) * b(i,108)
         b(i,121) = b(i,121) - lu(i,653) * b(i,108)
         b(i,122) = b(i,122) - lu(i,654) * b(i,108)
         b(i,126) = b(i,126) - lu(i,655) * b(i,108)
         b(i,127) = b(i,127) - lu(i,656) * b(i,108)
         b(i,131) = b(i,131) - lu(i,657) * b(i,108)
         b(i,132) = b(i,132) - lu(i,658) * b(i,108)
         b(i,133) = b(i,133) - lu(i,659) * b(i,108)
         b(i,134) = b(i,134) - lu(i,660) * b(i,108)
         b(i,115) = b(i,115) - lu(i,663) * b(i,109)
         b(i,125) = b(i,125) - lu(i,664) * b(i,109)
         b(i,127) = b(i,127) - lu(i,665) * b(i,109)
         b(i,131) = b(i,131) - lu(i,666) * b(i,109)
         b(i,132) = b(i,132) - lu(i,667) * b(i,109)
         b(i,133) = b(i,133) - lu(i,668) * b(i,109)
         b(i,134) = b(i,134) - lu(i,669) * b(i,109)
         b(i,115) = b(i,115) - lu(i,678) * b(i,110)
         b(i,119) = b(i,119) - lu(i,679) * b(i,110)
         b(i,125) = b(i,125) - lu(i,680) * b(i,110)
         b(i,127) = b(i,127) - lu(i,681) * b(i,110)
         b(i,129) = b(i,129) - lu(i,682) * b(i,110)
         b(i,130) = b(i,130) - lu(i,683) * b(i,110)
         b(i,131) = b(i,131) - lu(i,684) * b(i,110)
         b(i,132) = b(i,132) - lu(i,685) * b(i,110)
         b(i,133) = b(i,133) - lu(i,686) * b(i,110)
         b(i,134) = b(i,134) - lu(i,687) * b(i,110)
         b(i,135) = b(i,135) - lu(i,688) * b(i,110)
         b(i,112) = b(i,112) - lu(i,698) * b(i,111)
         b(i,113) = b(i,113) - lu(i,699) * b(i,111)
         b(i,114) = b(i,114) - lu(i,700) * b(i,111)
         b(i,115) = b(i,115) - lu(i,701) * b(i,111)
         b(i,119) = b(i,119) - lu(i,702) * b(i,111)
         b(i,123) = b(i,123) - lu(i,703) * b(i,111)
         b(i,125) = b(i,125) - lu(i,704) * b(i,111)
         b(i,127) = b(i,127) - lu(i,705) * b(i,111)
         b(i,129) = b(i,129) - lu(i,706) * b(i,111)
         b(i,130) = b(i,130) - lu(i,707) * b(i,111)
         b(i,131) = b(i,131) - lu(i,708) * b(i,111)
         b(i,132) = b(i,132) - lu(i,709) * b(i,111)
         b(i,133) = b(i,133) - lu(i,710) * b(i,111)
         b(i,134) = b(i,134) - lu(i,711) * b(i,111)
         b(i,135) = b(i,135) - lu(i,712) * b(i,111)
         b(i,114) = b(i,114) - lu(i,722) * b(i,112)
         b(i,115) = b(i,115) - lu(i,723) * b(i,112)
         b(i,119) = b(i,119) - lu(i,724) * b(i,112)
         b(i,125) = b(i,125) - lu(i,725) * b(i,112)
         b(i,127) = b(i,127) - lu(i,726) * b(i,112)
         b(i,129) = b(i,129) - lu(i,727) * b(i,112)
         b(i,130) = b(i,130) - lu(i,728) * b(i,112)
         b(i,131) = b(i,131) - lu(i,729) * b(i,112)
         b(i,132) = b(i,132) - lu(i,730) * b(i,112)
         b(i,133) = b(i,133) - lu(i,731) * b(i,112)
         b(i,134) = b(i,134) - lu(i,732) * b(i,112)
         b(i,135) = b(i,135) - lu(i,733) * b(i,112)
         b(i,114) = b(i,114) - lu(i,741) * b(i,113)
         b(i,115) = b(i,115) - lu(i,742) * b(i,113)
         b(i,119) = b(i,119) - lu(i,743) * b(i,113)
         b(i,120) = b(i,120) - lu(i,744) * b(i,113)
         b(i,123) = b(i,123) - lu(i,745) * b(i,113)
         b(i,125) = b(i,125) - lu(i,746) * b(i,113)
         b(i,127) = b(i,127) - lu(i,747) * b(i,113)
         b(i,129) = b(i,129) - lu(i,748) * b(i,113)
         b(i,130) = b(i,130) - lu(i,749) * b(i,113)
         b(i,131) = b(i,131) - lu(i,750) * b(i,113)
         b(i,132) = b(i,132) - lu(i,751) * b(i,113)
         b(i,133) = b(i,133) - lu(i,752) * b(i,113)
         b(i,134) = b(i,134) - lu(i,753) * b(i,113)
         b(i,135) = b(i,135) - lu(i,754) * b(i,113)
         b(i,115) = b(i,115) - lu(i,761) * b(i,114)
         b(i,119) = b(i,119) - lu(i,762) * b(i,114)
         b(i,120) = b(i,120) - lu(i,763) * b(i,114)
         b(i,123) = b(i,123) - lu(i,764) * b(i,114)
         b(i,125) = b(i,125) - lu(i,765) * b(i,114)
         b(i,127) = b(i,127) - lu(i,766) * b(i,114)
         b(i,129) = b(i,129) - lu(i,767) * b(i,114)
         b(i,130) = b(i,130) - lu(i,768) * b(i,114)
         b(i,131) = b(i,131) - lu(i,769) * b(i,114)
         b(i,132) = b(i,132) - lu(i,770) * b(i,114)
         b(i,133) = b(i,133) - lu(i,771) * b(i,114)
         b(i,134) = b(i,134) - lu(i,772) * b(i,114)
         b(i,135) = b(i,135) - lu(i,773) * b(i,114)
         b(i,119) = b(i,119) - lu(i,790) * b(i,115)
         b(i,120) = b(i,120) - lu(i,791) * b(i,115)
         b(i,123) = b(i,123) - lu(i,792) * b(i,115)
         b(i,125) = b(i,125) - lu(i,793) * b(i,115)
         b(i,127) = b(i,127) - lu(i,794) * b(i,115)
         b(i,129) = b(i,129) - lu(i,795) * b(i,115)
         b(i,130) = b(i,130) - lu(i,796) * b(i,115)
         b(i,131) = b(i,131) - lu(i,797) * b(i,115)
         b(i,132) = b(i,132) - lu(i,798) * b(i,115)
         b(i,133) = b(i,133) - lu(i,799) * b(i,115)
         b(i,134) = b(i,134) - lu(i,800) * b(i,115)
         b(i,135) = b(i,135) - lu(i,801) * b(i,115)
         b(i,118) = b(i,118) - lu(i,806) * b(i,116)
         b(i,120) = b(i,120) - lu(i,807) * b(i,116)
         b(i,121) = b(i,121) - lu(i,808) * b(i,116)
         b(i,123) = b(i,123) - lu(i,809) * b(i,116)
         b(i,124) = b(i,124) - lu(i,810) * b(i,116)
         b(i,125) = b(i,125) - lu(i,811) * b(i,116)
         b(i,126) = b(i,126) - lu(i,812) * b(i,116)
         b(i,127) = b(i,127) - lu(i,813) * b(i,116)
         b(i,128) = b(i,128) - lu(i,814) * b(i,116)
         b(i,129) = b(i,129) - lu(i,815) * b(i,116)
         b(i,130) = b(i,130) - lu(i,816) * b(i,116)
         b(i,131) = b(i,131) - lu(i,817) * b(i,116)
         b(i,134) = b(i,134) - lu(i,818) * b(i,116)
         b(i,118) = b(i,118) - lu(i,825) * b(i,117)
         b(i,121) = b(i,121) - lu(i,826) * b(i,117)
         b(i,122) = b(i,122) - lu(i,827) * b(i,117)
         b(i,124) = b(i,124) - lu(i,828) * b(i,117)
         b(i,126) = b(i,126) - lu(i,829) * b(i,117)
         b(i,127) = b(i,127) - lu(i,830) * b(i,117)
         b(i,128) = b(i,128) - lu(i,831) * b(i,117)
         b(i,130) = b(i,130) - lu(i,832) * b(i,117)
         b(i,131) = b(i,131) - lu(i,833) * b(i,117)
         b(i,132) = b(i,132) - lu(i,834) * b(i,117)
         b(i,133) = b(i,133) - lu(i,835) * b(i,117)
         b(i,134) = b(i,134) - lu(i,836) * b(i,117)
         b(i,120) = b(i,120) - lu(i,840) * b(i,118)
         b(i,121) = b(i,121) - lu(i,841) * b(i,118)
         b(i,122) = b(i,122) - lu(i,842) * b(i,118)
         b(i,123) = b(i,123) - lu(i,843) * b(i,118)
         b(i,125) = b(i,125) - lu(i,844) * b(i,118)
         b(i,127) = b(i,127) - lu(i,845) * b(i,118)
         b(i,128) = b(i,128) - lu(i,846) * b(i,118)
         b(i,131) = b(i,131) - lu(i,847) * b(i,118)
         b(i,134) = b(i,134) - lu(i,848) * b(i,118)
         b(i,135) = b(i,135) - lu(i,849) * b(i,118)
      enddo
        END SUBROUTINE lu_slv03_vec

#ifdef DOINLINE 
!DIR$ ATTRIBUTES FORCEINLINE :: lu_slv04_vec
#else
!DIR$ ATTRIBUTES NOINLINE :: lu_slv04_vec
#endif
        SUBROUTINE lu_slv04_vec(ncol,nb,nz,lu, b)
            USE shr_kind_mod, ONLY: r8 => shr_kind_r8
            IMPLICIT NONE
            !-----------------------------------------------------------------------
            ! ... Dummy args
            !-----------------------------------------------------------------------
            integer :: ncol,nb,nz
            REAL(KIND=r8), intent(in) :: lu(ncol,nz)
            REAL(KIND=r8), intent(inout) :: b(ncol,nb)
            !-----------------------------------------------------------------------
            ! ... Local variables
            !-----------------------------------------------------------------------
            integer :: i
            !-----------------------------------------------------------------------
            ! ... solve L * y = b
            !-----------------------------------------------------------------------
!DIR$ ASSUME_ALIGNED lu:64
!DIR$ ASSUME_ALIGNED b:64
      do i=1,ncol
         b(i,120) = b(i,120) - lu(i,873) * b(i,119)
         b(i,123) = b(i,123) - lu(i,874) * b(i,119)
         b(i,124) = b(i,124) - lu(i,875) * b(i,119)
         b(i,125) = b(i,125) - lu(i,876) * b(i,119)
         b(i,126) = b(i,126) - lu(i,877) * b(i,119)
         b(i,127) = b(i,127) - lu(i,878) * b(i,119)
         b(i,129) = b(i,129) - lu(i,879) * b(i,119)
         b(i,130) = b(i,130) - lu(i,880) * b(i,119)
         b(i,131) = b(i,131) - lu(i,881) * b(i,119)
         b(i,132) = b(i,132) - lu(i,882) * b(i,119)
         b(i,133) = b(i,133) - lu(i,883) * b(i,119)
         b(i,134) = b(i,134) - lu(i,884) * b(i,119)
         b(i,135) = b(i,135) - lu(i,885) * b(i,119)
         b(i,121) = b(i,121) - lu(i,904) * b(i,120)
         b(i,122) = b(i,122) - lu(i,905) * b(i,120)
         b(i,123) = b(i,123) - lu(i,906) * b(i,120)
         b(i,124) = b(i,124) - lu(i,907) * b(i,120)
         b(i,125) = b(i,125) - lu(i,908) * b(i,120)
         b(i,126) = b(i,126) - lu(i,909) * b(i,120)
         b(i,127) = b(i,127) - lu(i,910) * b(i,120)
         b(i,128) = b(i,128) - lu(i,911) * b(i,120)
         b(i,129) = b(i,129) - lu(i,912) * b(i,120)
         b(i,130) = b(i,130) - lu(i,913) * b(i,120)
         b(i,131) = b(i,131) - lu(i,914) * b(i,120)
         b(i,134) = b(i,134) - lu(i,915) * b(i,120)
         b(i,135) = b(i,135) - lu(i,916) * b(i,120)
         b(i,122) = b(i,122) - lu(i,944) * b(i,121)
         b(i,123) = b(i,123) - lu(i,945) * b(i,121)
         b(i,124) = b(i,124) - lu(i,946) * b(i,121)
         b(i,125) = b(i,125) - lu(i,947) * b(i,121)
         b(i,126) = b(i,126) - lu(i,948) * b(i,121)
         b(i,127) = b(i,127) - lu(i,949) * b(i,121)
         b(i,128) = b(i,128) - lu(i,950) * b(i,121)
         b(i,129) = b(i,129) - lu(i,951) * b(i,121)
         b(i,130) = b(i,130) - lu(i,952) * b(i,121)
         b(i,131) = b(i,131) - lu(i,953) * b(i,121)
         b(i,132) = b(i,132) - lu(i,954) * b(i,121)
         b(i,133) = b(i,133) - lu(i,955) * b(i,121)
         b(i,134) = b(i,134) - lu(i,956) * b(i,121)
         b(i,135) = b(i,135) - lu(i,957) * b(i,121)
         b(i,123) = b(i,123) - lu(i,971) * b(i,122)
         b(i,124) = b(i,124) - lu(i,972) * b(i,122)
         b(i,125) = b(i,125) - lu(i,973) * b(i,122)
         b(i,126) = b(i,126) - lu(i,974) * b(i,122)
         b(i,127) = b(i,127) - lu(i,975) * b(i,122)
         b(i,128) = b(i,128) - lu(i,976) * b(i,122)
         b(i,129) = b(i,129) - lu(i,977) * b(i,122)
         b(i,130) = b(i,130) - lu(i,978) * b(i,122)
         b(i,131) = b(i,131) - lu(i,979) * b(i,122)
         b(i,132) = b(i,132) - lu(i,980) * b(i,122)
         b(i,133) = b(i,133) - lu(i,981) * b(i,122)
         b(i,134) = b(i,134) - lu(i,982) * b(i,122)
         b(i,135) = b(i,135) - lu(i,983) * b(i,122)
         b(i,124) = b(i,124) - lu(i,1017) * b(i,123)
         b(i,125) = b(i,125) - lu(i,1018) * b(i,123)
         b(i,126) = b(i,126) - lu(i,1019) * b(i,123)
         b(i,127) = b(i,127) - lu(i,1020) * b(i,123)
         b(i,128) = b(i,128) - lu(i,1021) * b(i,123)
         b(i,129) = b(i,129) - lu(i,1022) * b(i,123)
         b(i,130) = b(i,130) - lu(i,1023) * b(i,123)
         b(i,131) = b(i,131) - lu(i,1024) * b(i,123)
         b(i,132) = b(i,132) - lu(i,1025) * b(i,123)
         b(i,133) = b(i,133) - lu(i,1026) * b(i,123)
         b(i,134) = b(i,134) - lu(i,1027) * b(i,123)
         b(i,135) = b(i,135) - lu(i,1028) * b(i,123)
         b(i,125) = b(i,125) - lu(i,1045) * b(i,124)
         b(i,126) = b(i,126) - lu(i,1046) * b(i,124)
         b(i,127) = b(i,127) - lu(i,1047) * b(i,124)
         b(i,128) = b(i,128) - lu(i,1048) * b(i,124)
         b(i,129) = b(i,129) - lu(i,1049) * b(i,124)
         b(i,130) = b(i,130) - lu(i,1050) * b(i,124)
         b(i,131) = b(i,131) - lu(i,1051) * b(i,124)
         b(i,132) = b(i,132) - lu(i,1052) * b(i,124)
         b(i,133) = b(i,133) - lu(i,1053) * b(i,124)
         b(i,134) = b(i,134) - lu(i,1054) * b(i,124)
         b(i,135) = b(i,135) - lu(i,1055) * b(i,124)
         b(i,126) = b(i,126) - lu(i,1115) * b(i,125)
         b(i,127) = b(i,127) - lu(i,1116) * b(i,125)
         b(i,128) = b(i,128) - lu(i,1117) * b(i,125)
         b(i,129) = b(i,129) - lu(i,1118) * b(i,125)
         b(i,130) = b(i,130) - lu(i,1119) * b(i,125)
         b(i,131) = b(i,131) - lu(i,1120) * b(i,125)
         b(i,132) = b(i,132) - lu(i,1121) * b(i,125)
         b(i,133) = b(i,133) - lu(i,1122) * b(i,125)
         b(i,134) = b(i,134) - lu(i,1123) * b(i,125)
         b(i,135) = b(i,135) - lu(i,1124) * b(i,125)
         b(i,127) = b(i,127) - lu(i,1151) * b(i,126)
         b(i,128) = b(i,128) - lu(i,1152) * b(i,126)
         b(i,129) = b(i,129) - lu(i,1153) * b(i,126)
         b(i,130) = b(i,130) - lu(i,1154) * b(i,126)
         b(i,131) = b(i,131) - lu(i,1155) * b(i,126)
         b(i,132) = b(i,132) - lu(i,1156) * b(i,126)
         b(i,133) = b(i,133) - lu(i,1157) * b(i,126)
         b(i,134) = b(i,134) - lu(i,1158) * b(i,126)
         b(i,135) = b(i,135) - lu(i,1159) * b(i,126)
         b(i,128) = b(i,128) - lu(i,1172) * b(i,127)
         b(i,129) = b(i,129) - lu(i,1173) * b(i,127)
         b(i,130) = b(i,130) - lu(i,1174) * b(i,127)
         b(i,131) = b(i,131) - lu(i,1175) * b(i,127)
         b(i,132) = b(i,132) - lu(i,1176) * b(i,127)
         b(i,133) = b(i,133) - lu(i,1177) * b(i,127)
         b(i,134) = b(i,134) - lu(i,1178) * b(i,127)
         b(i,135) = b(i,135) - lu(i,1179) * b(i,127)
         b(i,129) = b(i,129) - lu(i,1197) * b(i,128)
         b(i,130) = b(i,130) - lu(i,1198) * b(i,128)
         b(i,131) = b(i,131) - lu(i,1199) * b(i,128)
         b(i,132) = b(i,132) - lu(i,1200) * b(i,128)
         b(i,133) = b(i,133) - lu(i,1201) * b(i,128)
         b(i,134) = b(i,134) - lu(i,1202) * b(i,128)
         b(i,135) = b(i,135) - lu(i,1203) * b(i,128)
         b(i,130) = b(i,130) - lu(i,1253) * b(i,129)
         b(i,131) = b(i,131) - lu(i,1254) * b(i,129)
         b(i,132) = b(i,132) - lu(i,1255) * b(i,129)
         b(i,133) = b(i,133) - lu(i,1256) * b(i,129)
         b(i,134) = b(i,134) - lu(i,1257) * b(i,129)
         b(i,135) = b(i,135) - lu(i,1258) * b(i,129)
         b(i,131) = b(i,131) - lu(i,1291) * b(i,130)
         b(i,132) = b(i,132) - lu(i,1292) * b(i,130)
         b(i,133) = b(i,133) - lu(i,1293) * b(i,130)
         b(i,134) = b(i,134) - lu(i,1294) * b(i,130)
         b(i,135) = b(i,135) - lu(i,1295) * b(i,130)
         b(i,132) = b(i,132) - lu(i,1390) * b(i,131)
         b(i,133) = b(i,133) - lu(i,1391) * b(i,131)
         b(i,134) = b(i,134) - lu(i,1392) * b(i,131)
         b(i,135) = b(i,135) - lu(i,1393) * b(i,131)
         b(i,133) = b(i,133) - lu(i,1435) * b(i,132)
         b(i,134) = b(i,134) - lu(i,1436) * b(i,132)
         b(i,135) = b(i,135) - lu(i,1437) * b(i,132)
         b(i,134) = b(i,134) - lu(i,1458) * b(i,133)
         b(i,135) = b(i,135) - lu(i,1459) * b(i,133)
         b(i,135) = b(i,135) - lu(i,1485) * b(i,134)
      enddo
        END SUBROUTINE lu_slv04_vec

#ifdef DOINLINE
!DIR$ ATTRIBUTES FORCEINLINE :: lu_slv05_vec
#else
!DIR$ ATTRIBUTES NOINLINE :: lu_slv05_vec
#endif
        SUBROUTINE lu_slv05_vec(ncol,nb,nz,lu, b)
            USE shr_kind_mod, ONLY: r8 => shr_kind_r8
            IMPLICIT NONE
            !-----------------------------------------------------------------------
            ! ... Dummy args
            !-----------------------------------------------------------------------
            integer :: ncol,nb,nz
            REAL(KIND=r8), intent(in) :: lu(ncol,nz)
            REAL(KIND=r8), intent(inout) :: b(ncol,nb)
            !-----------------------------------------------------------------------
            ! ... Local variables
            !-----------------------------------------------------------------------
            integer i
            !-----------------------------------------------------------------------
            ! ... solve L * y = b
            !-----------------------------------------------------------------------
            !-----------------------------------------------------------------------
            ! ... Solve U * x = y
            !-----------------------------------------------------------------------
!DIR$ ASSUME_ALIGNED lu:64
!DIR$ ASSUME_ALIGNED b:64
        
       do i=1,ncol
         b(i,135) = b(i,135) * lu(i,1509)
         b(i,134) = b(i,134) - lu(i,1508) * b(i,135)
         b(i,133) = b(i,133) - lu(i,1507) * b(i,135)
         b(i,132) = b(i,132) - lu(i,1506) * b(i,135)
         b(i,131) = b(i,131) - lu(i,1505) * b(i,135)
         b(i,130) = b(i,130) - lu(i,1504) * b(i,135)
         b(i,129) = b(i,129) - lu(i,1503) * b(i,135)
         b(i,128) = b(i,128) - lu(i,1502) * b(i,135)
         b(i,127) = b(i,127) - lu(i,1501) * b(i,135)
         b(i,126) = b(i,126) - lu(i,1500) * b(i,135)
         b(i,125) = b(i,125) - lu(i,1499) * b(i,135)
         b(i,124) = b(i,124) - lu(i,1498) * b(i,135)
         b(i,123) = b(i,123) - lu(i,1497) * b(i,135)
         b(i,122) = b(i,122) - lu(i,1496) * b(i,135)
         b(i,121) = b(i,121) - lu(i,1495) * b(i,135)
         b(i,120) = b(i,120) - lu(i,1494) * b(i,135)
         b(i,119) = b(i,119) - lu(i,1493) * b(i,135)
         b(i,118) = b(i,118) - lu(i,1492) * b(i,135)
         b(i,117) = b(i,117) - lu(i,1491) * b(i,135)
         b(i,108) = b(i,108) - lu(i,1490) * b(i,135)
         b(i,103) = b(i,103) - lu(i,1489) * b(i,135)
         b(i,90) = b(i,90) - lu(i,1488) * b(i,135)
         b(i,64) = b(i,64) - lu(i,1487) * b(i,135)
         b(i,54) = b(i,54) - lu(i,1486) * b(i,135)
         b(i,134) = b(i,134) * lu(i,1484)
         b(i,133) = b(i,133) - lu(i,1483) * b(i,134)
         b(i,132) = b(i,132) - lu(i,1482) * b(i,134)
         b(i,131) = b(i,131) - lu(i,1481) * b(i,134)
         b(i,130) = b(i,130) - lu(i,1480) * b(i,134)
         b(i,129) = b(i,129) - lu(i,1479) * b(i,134)
         b(i,128) = b(i,128) - lu(i,1478) * b(i,134)
         b(i,127) = b(i,127) - lu(i,1477) * b(i,134)
         b(i,126) = b(i,126) - lu(i,1476) * b(i,134)
         b(i,125) = b(i,125) - lu(i,1475) * b(i,134)
         b(i,124) = b(i,124) - lu(i,1474) * b(i,134)
         b(i,123) = b(i,123) - lu(i,1473) * b(i,134)
         b(i,122) = b(i,122) - lu(i,1472) * b(i,134)
         b(i,121) = b(i,121) - lu(i,1471) * b(i,134)
         b(i,120) = b(i,120) - lu(i,1470) * b(i,134)
         b(i,119) = b(i,119) - lu(i,1469) * b(i,134)
         b(i,118) = b(i,118) - lu(i,1468) * b(i,134)
         b(i,117) = b(i,117) - lu(i,1467) * b(i,134)
         b(i,116) = b(i,116) - lu(i,1466) * b(i,134)
         b(i,108) = b(i,108) - lu(i,1465) * b(i,134)
         b(i,99) = b(i,99) - lu(i,1464) * b(i,134)
         b(i,88) = b(i,88) - lu(i,1463) * b(i,134)
         b(i,36) = b(i,36) - lu(i,1462) * b(i,134)
         b(i,34) = b(i,34) - lu(i,1461) * b(i,134)
         b(i,26) = b(i,26) - lu(i,1460) * b(i,134)
         b(i,133) = b(i,133) * lu(i,1457)
         b(i,132) = b(i,132) - lu(i,1456) * b(i,133)
         b(i,131) = b(i,131) - lu(i,1455) * b(i,133)
         b(i,130) = b(i,130) - lu(i,1454) * b(i,133)
         b(i,129) = b(i,129) - lu(i,1453) * b(i,133)
         b(i,128) = b(i,128) - lu(i,1452) * b(i,133)
         b(i,127) = b(i,127) - lu(i,1451) * b(i,133)
         b(i,126) = b(i,126) - lu(i,1450) * b(i,133)
         b(i,125) = b(i,125) - lu(i,1449) * b(i,133)
         b(i,124) = b(i,124) - lu(i,1448) * b(i,133)
         b(i,123) = b(i,123) - lu(i,1447) * b(i,133)
         b(i,122) = b(i,122) - lu(i,1446) * b(i,133)
         b(i,121) = b(i,121) - lu(i,1445) * b(i,133)
         b(i,120) = b(i,120) - lu(i,1444) * b(i,133)
         b(i,119) = b(i,119) - lu(i,1443) * b(i,133)
         b(i,118) = b(i,118) - lu(i,1442) * b(i,133)
         b(i,117) = b(i,117) - lu(i,1441) * b(i,133)
         b(i,108) = b(i,108) - lu(i,1440) * b(i,133)
         b(i,88) = b(i,88) - lu(i,1439) * b(i,133)
         b(i,34) = b(i,34) - lu(i,1438) * b(i,133)
         b(i,132) = b(i,132) * lu(i,1434)
         b(i,131) = b(i,131) - lu(i,1433) * b(i,132)
         b(i,130) = b(i,130) - lu(i,1432) * b(i,132)
         b(i,129) = b(i,129) - lu(i,1431) * b(i,132)
         b(i,128) = b(i,128) - lu(i,1430) * b(i,132)
         b(i,127) = b(i,127) - lu(i,1429) * b(i,132)
         b(i,126) = b(i,126) - lu(i,1428) * b(i,132)
         b(i,125) = b(i,125) - lu(i,1427) * b(i,132)
         b(i,124) = b(i,124) - lu(i,1426) * b(i,132)
         b(i,123) = b(i,123) - lu(i,1425) * b(i,132)
         b(i,122) = b(i,122) - lu(i,1424) * b(i,132)
         b(i,121) = b(i,121) - lu(i,1423) * b(i,132)
         b(i,120) = b(i,120) - lu(i,1422) * b(i,132)
         b(i,119) = b(i,119) - lu(i,1421) * b(i,132)
         b(i,118) = b(i,118) - lu(i,1420) * b(i,132)
         b(i,116) = b(i,116) - lu(i,1419) * b(i,132)
         b(i,115) = b(i,115) - lu(i,1418) * b(i,132)
         b(i,114) = b(i,114) - lu(i,1417) * b(i,132)
         b(i,113) = b(i,113) - lu(i,1416) * b(i,132)
         b(i,112) = b(i,112) - lu(i,1415) * b(i,132)
         b(i,111) = b(i,111) - lu(i,1414) * b(i,132)
         b(i,110) = b(i,110) - lu(i,1413) * b(i,132)
         b(i,109) = b(i,109) - lu(i,1412) * b(i,132)
         b(i,107) = b(i,107) - lu(i,1411) * b(i,132)
         b(i,106) = b(i,106) - lu(i,1410) * b(i,132)
         b(i,105) = b(i,105) - lu(i,1409) * b(i,132)
         b(i,104) = b(i,104) - lu(i,1408) * b(i,132)
         b(i,103) = b(i,103) - lu(i,1407) * b(i,132)
         b(i,102) = b(i,102) - lu(i,1406) * b(i,132)
         b(i,101) = b(i,101) - lu(i,1405) * b(i,132)
         b(i,99) = b(i,99) - lu(i,1404) * b(i,132)
         b(i,98) = b(i,98) - lu(i,1403) * b(i,132)
         b(i,97) = b(i,97) - lu(i,1402) * b(i,132)
         b(i,95) = b(i,95) - lu(i,1401) * b(i,132)
         b(i,94) = b(i,94) - lu(i,1400) * b(i,132)
         b(i,81) = b(i,81) - lu(i,1399) * b(i,132)
         b(i,73) = b(i,73) - lu(i,1398) * b(i,132)
         b(i,49) = b(i,49) - lu(i,1397) * b(i,132)
         b(i,47) = b(i,47) - lu(i,1396) * b(i,132)
         b(i,40) = b(i,40) - lu(i,1395) * b(i,132)
         b(i,39) = b(i,39) - lu(i,1394) * b(i,132)
         b(i,131) = b(i,131) * lu(i,1389)
         b(i,130) = b(i,130) - lu(i,1388) * b(i,131)
         b(i,129) = b(i,129) - lu(i,1387) * b(i,131)
         b(i,128) = b(i,128) - lu(i,1386) * b(i,131)
         b(i,127) = b(i,127) - lu(i,1385) * b(i,131)
         b(i,126) = b(i,126) - lu(i,1384) * b(i,131)
         b(i,125) = b(i,125) - lu(i,1383) * b(i,131)
         b(i,124) = b(i,124) - lu(i,1382) * b(i,131)
         b(i,123) = b(i,123) - lu(i,1381) * b(i,131)
         b(i,122) = b(i,122) - lu(i,1380) * b(i,131)
         b(i,121) = b(i,121) - lu(i,1379) * b(i,131)
         b(i,120) = b(i,120) - lu(i,1378) * b(i,131)
         b(i,119) = b(i,119) - lu(i,1377) * b(i,131)
         b(i,118) = b(i,118) - lu(i,1376) * b(i,131)
         b(i,117) = b(i,117) - lu(i,1375) * b(i,131)
         b(i,116) = b(i,116) - lu(i,1374) * b(i,131)
         b(i,115) = b(i,115) - lu(i,1373) * b(i,131)
         b(i,114) = b(i,114) - lu(i,1372) * b(i,131)
         b(i,113) = b(i,113) - lu(i,1371) * b(i,131)
         b(i,112) = b(i,112) - lu(i,1370) * b(i,131)
         b(i,111) = b(i,111) - lu(i,1369) * b(i,131)
         b(i,110) = b(i,110) - lu(i,1368) * b(i,131)
         b(i,109) = b(i,109) - lu(i,1367) * b(i,131)
         b(i,108) = b(i,108) - lu(i,1366) * b(i,131)
         b(i,107) = b(i,107) - lu(i,1365) * b(i,131)
         b(i,106) = b(i,106) - lu(i,1364) * b(i,131)
         b(i,105) = b(i,105) - lu(i,1363) * b(i,131)
         b(i,104) = b(i,104) - lu(i,1362) * b(i,131)
         b(i,103) = b(i,103) - lu(i,1361) * b(i,131)
         b(i,102) = b(i,102) - lu(i,1360) * b(i,131)
         b(i,101) = b(i,101) - lu(i,1359) * b(i,131)
         b(i,100) = b(i,100) - lu(i,1358) * b(i,131)
         b(i,99) = b(i,99) - lu(i,1357) * b(i,131)
         b(i,98) = b(i,98) - lu(i,1356) * b(i,131)
         b(i,97) = b(i,97) - lu(i,1355) * b(i,131)
         b(i,96) = b(i,96) - lu(i,1354) * b(i,131)
         b(i,95) = b(i,95) - lu(i,1353) * b(i,131)
         b(i,94) = b(i,94) - lu(i,1352) * b(i,131)
         b(i,93) = b(i,93) - lu(i,1351) * b(i,131)
         b(i,92) = b(i,92) - lu(i,1350) * b(i,131)
         b(i,91) = b(i,91) - lu(i,1349) * b(i,131)
         b(i,90) = b(i,90) - lu(i,1348) * b(i,131)
         b(i,89) = b(i,89) - lu(i,1347) * b(i,131)
         b(i,88) = b(i,88) - lu(i,1346) * b(i,131)
         b(i,83) = b(i,83) - lu(i,1345) * b(i,131)
         b(i,82) = b(i,82) - lu(i,1344) * b(i,131)
         b(i,81) = b(i,81) - lu(i,1343) * b(i,131)
         b(i,80) = b(i,80) - lu(i,1342) * b(i,131)
         b(i,79) = b(i,79) - lu(i,1341) * b(i,131)
         b(i,77) = b(i,77) - lu(i,1340) * b(i,131)
         b(i,76) = b(i,76) - lu(i,1339) * b(i,131)
         b(i,75) = b(i,75) - lu(i,1338) * b(i,131)
         b(i,74) = b(i,74) - lu(i,1337) * b(i,131)
         b(i,73) = b(i,73) - lu(i,1336) * b(i,131)
         b(i,71) = b(i,71) - lu(i,1335) * b(i,131)
         b(i,69) = b(i,69) - lu(i,1334) * b(i,131)
         b(i,68) = b(i,68) - lu(i,1333) * b(i,131)
         b(i,67) = b(i,67) - lu(i,1332) * b(i,131)
         b(i,66) = b(i,66) - lu(i,1331) * b(i,131)
         b(i,65) = b(i,65) - lu(i,1330) * b(i,131)
         b(i,64) = b(i,64) - lu(i,1329) * b(i,131)
         b(i,63) = b(i,63) - lu(i,1328) * b(i,131)
         b(i,62) = b(i,62) - lu(i,1327) * b(i,131)
         b(i,60) = b(i,60) - lu(i,1326) * b(i,131)
         b(i,59) = b(i,59) - lu(i,1325) * b(i,131)
         b(i,57) = b(i,57) - lu(i,1324) * b(i,131)
         b(i,55) = b(i,55) - lu(i,1323) * b(i,131)
         b(i,53) = b(i,53) - lu(i,1322) * b(i,131)
         b(i,52) = b(i,52) - lu(i,1321) * b(i,131)
         b(i,51) = b(i,51) - lu(i,1320) * b(i,131)
         b(i,50) = b(i,50) - lu(i,1319) * b(i,131)
         b(i,49) = b(i,49) - lu(i,1318) * b(i,131)
         b(i,48) = b(i,48) - lu(i,1317) * b(i,131)
         b(i,47) = b(i,47) - lu(i,1316) * b(i,131)
         b(i,45) = b(i,45) - lu(i,1315) * b(i,131)
         b(i,44) = b(i,44) - lu(i,1314) * b(i,131)
         b(i,43) = b(i,43) - lu(i,1313) * b(i,131)
         b(i,42) = b(i,42) - lu(i,1312) * b(i,131)
         b(i,41) = b(i,41) - lu(i,1311) * b(i,131)
         b(i,39) = b(i,39) - lu(i,1310) * b(i,131)
         b(i,38) = b(i,38) - lu(i,1309) * b(i,131)
         b(i,37) = b(i,37) - lu(i,1308) * b(i,131)
         b(i,36) = b(i,36) - lu(i,1307) * b(i,131)
         b(i,35) = b(i,35) - lu(i,1306) * b(i,131)
         b(i,32) = b(i,32) - lu(i,1305) * b(i,131)
         b(i,31) = b(i,31) - lu(i,1304) * b(i,131)
         b(i,30) = b(i,30) - lu(i,1303) * b(i,131)
         b(i,25) = b(i,25) - lu(i,1302) * b(i,131)
         b(i,23) = b(i,23) - lu(i,1301) * b(i,131)
         b(i,22) = b(i,22) - lu(i,1300) * b(i,131)
         b(i,21) = b(i,21) - lu(i,1299) * b(i,131)
         b(i,20) = b(i,20) - lu(i,1298) * b(i,131)
         b(i,19) = b(i,19) - lu(i,1297) * b(i,131)
         b(i,17) = b(i,17) - lu(i,1296) * b(i,131)
      enddo
        END SUBROUTINE lu_slv05_vec

#ifdef DOINLINE
!DIR$ ATTRIBUTES FORCEINLINE :: lu_slv06_vec
#else
!DIR$ ATTRIBUTES NOINLINE :: lu_slv06_vec
#endif
        SUBROUTINE lu_slv06_vec(ncol,nb,nz,lu, b)
            USE shr_kind_mod, ONLY: r8 => shr_kind_r8
            IMPLICIT NONE
            !-----------------------------------------------------------------------
            ! ... Dummy args
            !-----------------------------------------------------------------------
            integer :: ncol,nb,nz
            REAL(KIND=r8), intent(in) :: lu(ncol,nz)
            REAL(KIND=r8), intent(inout) :: b(ncol,nb)
            !-----------------------------------------------------------------------
            ! ... Local variables
            !-----------------------------------------------------------------------
            integer :: i
            !-----------------------------------------------------------------------
            ! ... solve L * y = b
            !-----------------------------------------------------------------------
!DIR$ ASSUME_ALIGNED lu:64
!DIR$ ASSUME_ALIGNED b:64
       do i=1,ncol
         b(i,130) = b(i,130) * lu(i,1290)
         b(i,129) = b(i,129) - lu(i,1289) * b(i,130)
         b(i,128) = b(i,128) - lu(i,1288) * b(i,130)
         b(i,127) = b(i,127) - lu(i,1287) * b(i,130)
         b(i,126) = b(i,126) - lu(i,1286) * b(i,130)
         b(i,125) = b(i,125) - lu(i,1285) * b(i,130)
         b(i,124) = b(i,124) - lu(i,1284) * b(i,130)
         b(i,123) = b(i,123) - lu(i,1283) * b(i,130)
         b(i,122) = b(i,122) - lu(i,1282) * b(i,130)
         b(i,121) = b(i,121) - lu(i,1281) * b(i,130)
         b(i,120) = b(i,120) - lu(i,1280) * b(i,130)
         b(i,119) = b(i,119) - lu(i,1279) * b(i,130)
         b(i,118) = b(i,118) - lu(i,1278) * b(i,130)
         b(i,117) = b(i,117) - lu(i,1277) * b(i,130)
         b(i,116) = b(i,116) - lu(i,1276) * b(i,130)
         b(i,115) = b(i,115) - lu(i,1275) * b(i,130)
         b(i,114) = b(i,114) - lu(i,1274) * b(i,130)
         b(i,109) = b(i,109) - lu(i,1273) * b(i,130)
         b(i,105) = b(i,105) - lu(i,1272) * b(i,130)
         b(i,103) = b(i,103) - lu(i,1271) * b(i,130)
         b(i,100) = b(i,100) - lu(i,1270) * b(i,130)
         b(i,99) = b(i,99) - lu(i,1269) * b(i,130)
         b(i,92) = b(i,92) - lu(i,1268) * b(i,130)
         b(i,84) = b(i,84) - lu(i,1267) * b(i,130)
         b(i,81) = b(i,81) - lu(i,1266) * b(i,130)
         b(i,71) = b(i,71) - lu(i,1265) * b(i,130)
         b(i,70) = b(i,70) - lu(i,1264) * b(i,130)
         b(i,66) = b(i,66) - lu(i,1263) * b(i,130)
         b(i,60) = b(i,60) - lu(i,1262) * b(i,130)
         b(i,57) = b(i,57) - lu(i,1261) * b(i,130)
         b(i,40) = b(i,40) - lu(i,1260) * b(i,130)
         b(i,31) = b(i,31) - lu(i,1259) * b(i,130)
         b(i,129) = b(i,129) * lu(i,1252)
         b(i,128) = b(i,128) - lu(i,1251) * b(i,129)
         b(i,127) = b(i,127) - lu(i,1250) * b(i,129)
         b(i,126) = b(i,126) - lu(i,1249) * b(i,129)
         b(i,125) = b(i,125) - lu(i,1248) * b(i,129)
         b(i,124) = b(i,124) - lu(i,1247) * b(i,129)
         b(i,123) = b(i,123) - lu(i,1246) * b(i,129)
         b(i,122) = b(i,122) - lu(i,1245) * b(i,129)
         b(i,121) = b(i,121) - lu(i,1244) * b(i,129)
         b(i,120) = b(i,120) - lu(i,1243) * b(i,129)
         b(i,119) = b(i,119) - lu(i,1242) * b(i,129)
         b(i,118) = b(i,118) - lu(i,1241) * b(i,129)
         b(i,115) = b(i,115) - lu(i,1240) * b(i,129)
         b(i,114) = b(i,114) - lu(i,1239) * b(i,129)
         b(i,113) = b(i,113) - lu(i,1238) * b(i,129)
         b(i,112) = b(i,112) - lu(i,1237) * b(i,129)
         b(i,111) = b(i,111) - lu(i,1236) * b(i,129)
         b(i,110) = b(i,110) - lu(i,1235) * b(i,129)
         b(i,109) = b(i,109) - lu(i,1234) * b(i,129)
         b(i,107) = b(i,107) - lu(i,1233) * b(i,129)
         b(i,106) = b(i,106) - lu(i,1232) * b(i,129)
         b(i,105) = b(i,105) - lu(i,1231) * b(i,129)
         b(i,104) = b(i,104) - lu(i,1230) * b(i,129)
         b(i,103) = b(i,103) - lu(i,1229) * b(i,129)
         b(i,101) = b(i,101) - lu(i,1228) * b(i,129)
         b(i,98) = b(i,98) - lu(i,1227) * b(i,129)
         b(i,97) = b(i,97) - lu(i,1226) * b(i,129)
         b(i,96) = b(i,96) - lu(i,1225) * b(i,129)
         b(i,95) = b(i,95) - lu(i,1224) * b(i,129)
         b(i,92) = b(i,92) - lu(i,1223) * b(i,129)
         b(i,91) = b(i,91) - lu(i,1222) * b(i,129)
         b(i,89) = b(i,89) - lu(i,1221) * b(i,129)
         b(i,87) = b(i,87) - lu(i,1220) * b(i,129)
         b(i,86) = b(i,86) - lu(i,1219) * b(i,129)
         b(i,85) = b(i,85) - lu(i,1218) * b(i,129)
         b(i,83) = b(i,83) - lu(i,1217) * b(i,129)
         b(i,81) = b(i,81) - lu(i,1216) * b(i,129)
         b(i,80) = b(i,80) - lu(i,1215) * b(i,129)
         b(i,79) = b(i,79) - lu(i,1214) * b(i,129)
         b(i,77) = b(i,77) - lu(i,1213) * b(i,129)
         b(i,66) = b(i,66) - lu(i,1212) * b(i,129)
         b(i,65) = b(i,65) - lu(i,1211) * b(i,129)
         b(i,64) = b(i,64) - lu(i,1210) * b(i,129)
         b(i,56) = b(i,56) - lu(i,1209) * b(i,129)
         b(i,55) = b(i,55) - lu(i,1208) * b(i,129)
         b(i,54) = b(i,54) - lu(i,1207) * b(i,129)
         b(i,49) = b(i,49) - lu(i,1206) * b(i,129)
         b(i,47) = b(i,47) - lu(i,1205) * b(i,129)
         b(i,41) = b(i,41) - lu(i,1204) * b(i,129)
         b(i,128) = b(i,128) * lu(i,1196)
         b(i,127) = b(i,127) - lu(i,1195) * b(i,128)
         b(i,126) = b(i,126) - lu(i,1194) * b(i,128)
         b(i,125) = b(i,125) - lu(i,1193) * b(i,128)
         b(i,124) = b(i,124) - lu(i,1192) * b(i,128)
         b(i,123) = b(i,123) - lu(i,1191) * b(i,128)
         b(i,122) = b(i,122) - lu(i,1190) * b(i,128)
         b(i,121) = b(i,121) - lu(i,1189) * b(i,128)
         b(i,120) = b(i,120) - lu(i,1188) * b(i,128)
         b(i,118) = b(i,118) - lu(i,1187) * b(i,128)
         b(i,117) = b(i,117) - lu(i,1186) * b(i,128)
         b(i,116) = b(i,116) - lu(i,1185) * b(i,128)
         b(i,99) = b(i,99) - lu(i,1184) * b(i,128)
         b(i,84) = b(i,84) - lu(i,1183) * b(i,128)
         b(i,70) = b(i,70) - lu(i,1182) * b(i,128)
         b(i,46) = b(i,46) - lu(i,1181) * b(i,128)
         b(i,33) = b(i,33) - lu(i,1180) * b(i,128)
         b(i,127) = b(i,127) * lu(i,1171)
         b(i,126) = b(i,126) - lu(i,1170) * b(i,127)
         b(i,125) = b(i,125) - lu(i,1169) * b(i,127)
         b(i,124) = b(i,124) - lu(i,1168) * b(i,127)
         b(i,123) = b(i,123) - lu(i,1167) * b(i,127)
         b(i,122) = b(i,122) - lu(i,1166) * b(i,127)
         b(i,121) = b(i,121) - lu(i,1165) * b(i,127)
         b(i,120) = b(i,120) - lu(i,1164) * b(i,127)
         b(i,119) = b(i,119) - lu(i,1163) * b(i,127)
         b(i,118) = b(i,118) - lu(i,1162) * b(i,127)
         b(i,117) = b(i,117) - lu(i,1161) * b(i,127)
         b(i,108) = b(i,108) - lu(i,1160) * b(i,127)
         b(i,126) = b(i,126) * lu(i,1150)
         b(i,125) = b(i,125) - lu(i,1149) * b(i,126)
         b(i,124) = b(i,124) - lu(i,1148) * b(i,126)
         b(i,123) = b(i,123) - lu(i,1147) * b(i,126)
         b(i,122) = b(i,122) - lu(i,1146) * b(i,126)
         b(i,121) = b(i,121) - lu(i,1145) * b(i,126)
         b(i,120) = b(i,120) - lu(i,1144) * b(i,126)
         b(i,119) = b(i,119) - lu(i,1143) * b(i,126)
         b(i,118) = b(i,118) - lu(i,1142) * b(i,126)
         b(i,117) = b(i,117) - lu(i,1141) * b(i,126)
         b(i,115) = b(i,115) - lu(i,1140) * b(i,126)
         b(i,108) = b(i,108) - lu(i,1139) * b(i,126)
         b(i,104) = b(i,104) - lu(i,1138) * b(i,126)
         b(i,103) = b(i,103) - lu(i,1137) * b(i,126)
         b(i,100) = b(i,100) - lu(i,1136) * b(i,126)
         b(i,95) = b(i,95) - lu(i,1135) * b(i,126)
         b(i,93) = b(i,93) - lu(i,1134) * b(i,126)
         b(i,91) = b(i,91) - lu(i,1133) * b(i,126)
         b(i,83) = b(i,83) - lu(i,1132) * b(i,126)
         b(i,81) = b(i,81) - lu(i,1131) * b(i,126)
         b(i,74) = b(i,74) - lu(i,1130) * b(i,126)
         b(i,64) = b(i,64) - lu(i,1129) * b(i,126)
         b(i,63) = b(i,63) - lu(i,1128) * b(i,126)
         b(i,38) = b(i,38) - lu(i,1127) * b(i,126)
         b(i,37) = b(i,37) - lu(i,1126) * b(i,126)
         b(i,29) = b(i,29) - lu(i,1125) * b(i,126)
         b(i,125) = b(i,125) * lu(i,1114)
         b(i,124) = b(i,124) - lu(i,1113) * b(i,125)
         b(i,123) = b(i,123) - lu(i,1112) * b(i,125)
         b(i,122) = b(i,122) - lu(i,1111) * b(i,125)
         b(i,121) = b(i,121) - lu(i,1110) * b(i,125)
         b(i,120) = b(i,120) - lu(i,1109) * b(i,125)
         b(i,119) = b(i,119) - lu(i,1108) * b(i,125)
         b(i,118) = b(i,118) - lu(i,1107) * b(i,125)
         b(i,117) = b(i,117) - lu(i,1106) * b(i,125)
         b(i,115) = b(i,115) - lu(i,1105) * b(i,125)
         b(i,114) = b(i,114) - lu(i,1104) * b(i,125)
         b(i,113) = b(i,113) - lu(i,1103) * b(i,125)
         b(i,112) = b(i,112) - lu(i,1102) * b(i,125)
         b(i,111) = b(i,111) - lu(i,1101) * b(i,125)
         b(i,110) = b(i,110) - lu(i,1100) * b(i,125)
         b(i,109) = b(i,109) - lu(i,1099) * b(i,125)
         b(i,108) = b(i,108) - lu(i,1098) * b(i,125)
         b(i,107) = b(i,107) - lu(i,1097) * b(i,125)
         b(i,106) = b(i,106) - lu(i,1096) * b(i,125)
         b(i,105) = b(i,105) - lu(i,1095) * b(i,125)
         b(i,104) = b(i,104) - lu(i,1094) * b(i,125)
         b(i,103) = b(i,103) - lu(i,1093) * b(i,125)
         b(i,101) = b(i,101) - lu(i,1092) * b(i,125)
         b(i,98) = b(i,98) - lu(i,1091) * b(i,125)
         b(i,97) = b(i,97) - lu(i,1090) * b(i,125)
         b(i,96) = b(i,96) - lu(i,1089) * b(i,125)
         b(i,95) = b(i,95) - lu(i,1088) * b(i,125)
         b(i,93) = b(i,93) - lu(i,1087) * b(i,125)
         b(i,91) = b(i,91) - lu(i,1086) * b(i,125)
         b(i,90) = b(i,90) - lu(i,1085) * b(i,125)
         b(i,89) = b(i,89) - lu(i,1084) * b(i,125)
         b(i,84) = b(i,84) - lu(i,1083) * b(i,125)
         b(i,83) = b(i,83) - lu(i,1082) * b(i,125)
         b(i,81) = b(i,81) - lu(i,1081) * b(i,125)
         b(i,80) = b(i,80) - lu(i,1080) * b(i,125)
         b(i,79) = b(i,79) - lu(i,1079) * b(i,125)
         b(i,77) = b(i,77) - lu(i,1078) * b(i,125)
         b(i,76) = b(i,76) - lu(i,1077) * b(i,125)
         b(i,75) = b(i,75) - lu(i,1076) * b(i,125)
         b(i,74) = b(i,74) - lu(i,1075) * b(i,125)
         b(i,69) = b(i,69) - lu(i,1074) * b(i,125)
         b(i,67) = b(i,67) - lu(i,1073) * b(i,125)
         b(i,66) = b(i,66) - lu(i,1072) * b(i,125)
         b(i,65) = b(i,65) - lu(i,1071) * b(i,125)
         b(i,64) = b(i,64) - lu(i,1070) * b(i,125)
         b(i,62) = b(i,62) - lu(i,1069) * b(i,125)
         b(i,60) = b(i,60) - lu(i,1068) * b(i,125)
         b(i,59) = b(i,59) - lu(i,1067) * b(i,125)
         b(i,56) = b(i,56) - lu(i,1066) * b(i,125)
         b(i,54) = b(i,54) - lu(i,1065) * b(i,125)
         b(i,53) = b(i,53) - lu(i,1064) * b(i,125)
         b(i,52) = b(i,52) - lu(i,1063) * b(i,125)
         b(i,51) = b(i,51) - lu(i,1062) * b(i,125)
         b(i,50) = b(i,50) - lu(i,1061) * b(i,125)
         b(i,45) = b(i,45) - lu(i,1060) * b(i,125)
         b(i,44) = b(i,44) - lu(i,1059) * b(i,125)
         b(i,43) = b(i,43) - lu(i,1058) * b(i,125)
         b(i,42) = b(i,42) - lu(i,1057) * b(i,125)
         b(i,24) = b(i,24) - lu(i,1056) * b(i,125)
         b(i,124) = b(i,124) * lu(i,1044)
         b(i,123) = b(i,123) - lu(i,1043) * b(i,124)
         b(i,122) = b(i,122) - lu(i,1042) * b(i,124)
         b(i,121) = b(i,121) - lu(i,1041) * b(i,124)
         b(i,120) = b(i,120) - lu(i,1040) * b(i,124)
         b(i,119) = b(i,119) - lu(i,1039) * b(i,124)
         b(i,118) = b(i,118) - lu(i,1038) * b(i,124)
         b(i,117) = b(i,117) - lu(i,1037) * b(i,124)
         b(i,116) = b(i,116) - lu(i,1036) * b(i,124)
         b(i,100) = b(i,100) - lu(i,1035) * b(i,124)
         b(i,99) = b(i,99) - lu(i,1034) * b(i,124)
         b(i,93) = b(i,93) - lu(i,1033) * b(i,124)
         b(i,46) = b(i,46) - lu(i,1032) * b(i,124)
         b(i,33) = b(i,33) - lu(i,1031) * b(i,124)
         b(i,29) = b(i,29) - lu(i,1030) * b(i,124)
         b(i,18) = b(i,18) - lu(i,1029) * b(i,124)
       enddo
        END SUBROUTINE lu_slv06_vec

#ifdef DOINLINE 
!DIR$ ATTRIBUTES FORCEINLINE :: lu_slv07_vec
#else
!DIR$ ATTRIBUTES NOINLINE :: lu_slv07_vec
#endif
        SUBROUTINE lu_slv07_vec(ncol,nb,nz,lu, b)
            USE shr_kind_mod, ONLY: r8 => shr_kind_r8
            IMPLICIT NONE
            !-----------------------------------------------------------------------
            ! ... Dummy args
            !-----------------------------------------------------------------------
            integer :: ncol,nb,nz
            REAL(KIND=r8), intent(in) :: lu(ncol,nz)
            REAL(KIND=r8), intent(inout) :: b(ncol,nb)
            !-----------------------------------------------------------------------
            ! ... Local variables
            !-----------------------------------------------------------------------
            integer :: i
            !-----------------------------------------------------------------------
            ! ... solve L * y = b
            !-----------------------------------------------------------------------
!DIR$ ASSUME_ALIGNED lu:64
!DIR$ ASSUME_ALIGNED b:64
       do i=1,ncol 
         b(i,123) = b(i,123) * lu(i,1016)
         b(i,122) = b(i,122) - lu(i,1015) * b(i,123)
         b(i,121) = b(i,121) - lu(i,1014) * b(i,123)
         b(i,120) = b(i,120) - lu(i,1013) * b(i,123)
         b(i,119) = b(i,119) - lu(i,1012) * b(i,123)
         b(i,118) = b(i,118) - lu(i,1011) * b(i,123)
         b(i,116) = b(i,116) - lu(i,1010) * b(i,123)
         b(i,115) = b(i,115) - lu(i,1009) * b(i,123)
         b(i,114) = b(i,114) - lu(i,1008) * b(i,123)
         b(i,113) = b(i,113) - lu(i,1007) * b(i,123)
         b(i,112) = b(i,112) - lu(i,1006) * b(i,123)
         b(i,111) = b(i,111) - lu(i,1005) * b(i,123)
         b(i,110) = b(i,110) - lu(i,1004) * b(i,123)
         b(i,109) = b(i,109) - lu(i,1003) * b(i,123)
         b(i,107) = b(i,107) - lu(i,1002) * b(i,123)
         b(i,106) = b(i,106) - lu(i,1001) * b(i,123)
         b(i,105) = b(i,105) - lu(i,1000) * b(i,123)
         b(i,104) = b(i,104) - lu(i,999) * b(i,123)
         b(i,103) = b(i,103) - lu(i,998) * b(i,123)
         b(i,102) = b(i,102) - lu(i,997) * b(i,123)
         b(i,101) = b(i,101) - lu(i,996) * b(i,123)
         b(i,99) = b(i,99) - lu(i,995) * b(i,123)
         b(i,98) = b(i,98) - lu(i,994) * b(i,123)
         b(i,95) = b(i,95) - lu(i,993) * b(i,123)
         b(i,94) = b(i,94) - lu(i,992) * b(i,123)
         b(i,83) = b(i,83) - lu(i,991) * b(i,123)
         b(i,82) = b(i,82) - lu(i,990) * b(i,123)
         b(i,75) = b(i,75) - lu(i,989) * b(i,123)
         b(i,73) = b(i,73) - lu(i,988) * b(i,123)
         b(i,64) = b(i,64) - lu(i,987) * b(i,123)
         b(i,63) = b(i,63) - lu(i,986) * b(i,123)
         b(i,28) = b(i,28) - lu(i,985) * b(i,123)
         b(i,27) = b(i,27) - lu(i,984) * b(i,123)
         b(i,122) = b(i,122) * lu(i,970)
         b(i,121) = b(i,121) - lu(i,969) * b(i,122)
         b(i,120) = b(i,120) - lu(i,968) * b(i,122)
         b(i,119) = b(i,119) - lu(i,967) * b(i,122)
         b(i,118) = b(i,118) - lu(i,966) * b(i,122)
         b(i,117) = b(i,117) - lu(i,965) * b(i,122)
         b(i,108) = b(i,108) - lu(i,964) * b(i,122)
         b(i,90) = b(i,90) - lu(i,963) * b(i,122)
         b(i,88) = b(i,88) - lu(i,962) * b(i,122)
         b(i,32) = b(i,32) - lu(i,961) * b(i,122)
         b(i,30) = b(i,30) - lu(i,960) * b(i,122)
         b(i,28) = b(i,28) - lu(i,959) * b(i,122)
         b(i,25) = b(i,25) - lu(i,958) * b(i,122)
         b(i,121) = b(i,121) * lu(i,943)
         b(i,120) = b(i,120) - lu(i,942) * b(i,121)
         b(i,119) = b(i,119) - lu(i,941) * b(i,121)
         b(i,118) = b(i,118) - lu(i,940) * b(i,121)
         b(i,117) = b(i,117) - lu(i,939) * b(i,121)
         b(i,116) = b(i,116) - lu(i,938) * b(i,121)
         b(i,108) = b(i,108) - lu(i,937) * b(i,121)
         b(i,103) = b(i,103) - lu(i,936) * b(i,121)
         b(i,100) = b(i,100) - lu(i,935) * b(i,121)
         b(i,99) = b(i,99) - lu(i,934) * b(i,121)
         b(i,93) = b(i,93) - lu(i,933) * b(i,121)
         b(i,92) = b(i,92) - lu(i,932) * b(i,121)
         b(i,90) = b(i,90) - lu(i,931) * b(i,121)
         b(i,87) = b(i,87) - lu(i,930) * b(i,121)
         b(i,86) = b(i,86) - lu(i,929) * b(i,121)
         b(i,85) = b(i,85) - lu(i,928) * b(i,121)
         b(i,84) = b(i,84) - lu(i,927) * b(i,121)
         b(i,82) = b(i,82) - lu(i,926) * b(i,121)
         b(i,78) = b(i,78) - lu(i,925) * b(i,121)
         b(i,74) = b(i,74) - lu(i,924) * b(i,121)
         b(i,72) = b(i,72) - lu(i,923) * b(i,121)
         b(i,70) = b(i,70) - lu(i,922) * b(i,121)
         b(i,61) = b(i,61) - lu(i,921) * b(i,121)
         b(i,58) = b(i,58) - lu(i,920) * b(i,121)
         b(i,48) = b(i,48) - lu(i,919) * b(i,121)
         b(i,28) = b(i,28) - lu(i,918) * b(i,121)
         b(i,27) = b(i,27) - lu(i,917) * b(i,121)
         b(i,120) = b(i,120) * lu(i,903)
         b(i,118) = b(i,118) - lu(i,902) * b(i,120)
         b(i,116) = b(i,116) - lu(i,901) * b(i,120)
         b(i,103) = b(i,103) - lu(i,900) * b(i,120)
         b(i,99) = b(i,99) - lu(i,899) * b(i,120)
         b(i,95) = b(i,95) - lu(i,898) * b(i,120)
         b(i,92) = b(i,92) - lu(i,897) * b(i,120)
         b(i,87) = b(i,87) - lu(i,896) * b(i,120)
         b(i,86) = b(i,86) - lu(i,895) * b(i,120)
         b(i,85) = b(i,85) - lu(i,894) * b(i,120)
         b(i,82) = b(i,82) - lu(i,893) * b(i,120)
         b(i,78) = b(i,78) - lu(i,892) * b(i,120)
         b(i,72) = b(i,72) - lu(i,891) * b(i,120)
         b(i,61) = b(i,61) - lu(i,890) * b(i,120)
         b(i,58) = b(i,58) - lu(i,889) * b(i,120)
         b(i,56) = b(i,56) - lu(i,888) * b(i,120)
         b(i,28) = b(i,28) - lu(i,887) * b(i,120)
         b(i,27) = b(i,27) - lu(i,886) * b(i,120)
         b(i,119) = b(i,119) * lu(i,872)
         b(i,115) = b(i,115) - lu(i,871) * b(i,119)
         b(i,114) = b(i,114) - lu(i,870) * b(i,119)
         b(i,113) = b(i,113) - lu(i,869) * b(i,119)
         b(i,112) = b(i,112) - lu(i,868) * b(i,119)
         b(i,111) = b(i,111) - lu(i,867) * b(i,119)
         b(i,110) = b(i,110) - lu(i,866) * b(i,119)
         b(i,109) = b(i,109) - lu(i,865) * b(i,119)
         b(i,107) = b(i,107) - lu(i,864) * b(i,119)
         b(i,106) = b(i,106) - lu(i,863) * b(i,119)
         b(i,105) = b(i,105) - lu(i,862) * b(i,119)
         b(i,104) = b(i,104) - lu(i,861) * b(i,119)
         b(i,103) = b(i,103) - lu(i,860) * b(i,119)
         b(i,96) = b(i,96) - lu(i,859) * b(i,119)
         b(i,95) = b(i,95) - lu(i,858) * b(i,119)
         b(i,91) = b(i,91) - lu(i,857) * b(i,119)
         b(i,81) = b(i,81) - lu(i,856) * b(i,119)
         b(i,80) = b(i,80) - lu(i,855) * b(i,119)
         b(i,75) = b(i,75) - lu(i,854) * b(i,119)
         b(i,68) = b(i,68) - lu(i,853) * b(i,119)
         b(i,50) = b(i,50) - lu(i,852) * b(i,119)
         b(i,47) = b(i,47) - lu(i,851) * b(i,119)
         b(i,35) = b(i,35) - lu(i,850) * b(i,119)
         b(i,118) = b(i,118) * lu(i,839)
         b(i,103) = b(i,103) - lu(i,838) * b(i,118)
         b(i,90) = b(i,90) - lu(i,837) * b(i,118)
         b(i,117) = b(i,117) * lu(i,824)
         b(i,100) = b(i,100) - lu(i,823) * b(i,117)
         b(i,93) = b(i,93) - lu(i,822) * b(i,117)
         b(i,84) = b(i,84) - lu(i,821) * b(i,117)
         b(i,33) = b(i,33) - lu(i,820) * b(i,117)
         b(i,29) = b(i,29) - lu(i,819) * b(i,117)
         b(i,116) = b(i,116) * lu(i,805)
         b(i,99) = b(i,99) - lu(i,804) * b(i,116)
         b(i,82) = b(i,82) - lu(i,803) * b(i,116)
         b(i,46) = b(i,46) - lu(i,802) * b(i,116)
         b(i,115) = b(i,115) * lu(i,789)
         b(i,114) = b(i,114) - lu(i,788) * b(i,115)
         b(i,113) = b(i,113) - lu(i,787) * b(i,115)
         b(i,112) = b(i,112) - lu(i,786) * b(i,115)
         b(i,111) = b(i,111) - lu(i,785) * b(i,115)
         b(i,110) = b(i,110) - lu(i,784) * b(i,115)
         b(i,109) = b(i,109) - lu(i,783) * b(i,115)
         b(i,107) = b(i,107) - lu(i,782) * b(i,115)
         b(i,105) = b(i,105) - lu(i,781) * b(i,115)
         b(i,103) = b(i,103) - lu(i,780) * b(i,115)
         b(i,95) = b(i,95) - lu(i,779) * b(i,115)
         b(i,81) = b(i,81) - lu(i,778) * b(i,115)
         b(i,75) = b(i,75) - lu(i,777) * b(i,115)
         b(i,62) = b(i,62) - lu(i,776) * b(i,115)
         b(i,57) = b(i,57) - lu(i,775) * b(i,115)
         b(i,47) = b(i,47) - lu(i,774) * b(i,115)
         b(i,114) = b(i,114) * lu(i,760)
         b(i,109) = b(i,109) - lu(i,759) * b(i,114)
         b(i,105) = b(i,105) - lu(i,758) * b(i,114)
         b(i,75) = b(i,75) - lu(i,757) * b(i,114)
         b(i,71) = b(i,71) - lu(i,756) * b(i,114)
         b(i,62) = b(i,62) - lu(i,755) * b(i,114)
         b(i,113) = b(i,113) * lu(i,740)
         b(i,112) = b(i,112) - lu(i,739) * b(i,113)
         b(i,109) = b(i,109) - lu(i,738) * b(i,113)
         b(i,105) = b(i,105) - lu(i,737) * b(i,113)
         b(i,104) = b(i,104) - lu(i,736) * b(i,113)
         b(i,103) = b(i,103) - lu(i,735) * b(i,113)
         b(i,102) = b(i,102) - lu(i,734) * b(i,113)
         b(i,112) = b(i,112) * lu(i,721)
         b(i,110) = b(i,110) - lu(i,720) * b(i,112)
         b(i,109) = b(i,109) - lu(i,719) * b(i,112)
         b(i,105) = b(i,105) - lu(i,718) * b(i,112)
         b(i,103) = b(i,103) - lu(i,717) * b(i,112)
         b(i,97) = b(i,97) - lu(i,716) * b(i,112)
         b(i,95) = b(i,95) - lu(i,715) * b(i,112)
         b(i,68) = b(i,68) - lu(i,714) * b(i,112)
         b(i,43) = b(i,43) - lu(i,713) * b(i,112)
         b(i,111) = b(i,111) * lu(i,697)
         b(i,110) = b(i,110) - lu(i,696) * b(i,111)
         b(i,109) = b(i,109) - lu(i,695) * b(i,111)
         b(i,107) = b(i,107) - lu(i,694) * b(i,111)
         b(i,103) = b(i,103) - lu(i,693) * b(i,111)
         b(i,97) = b(i,97) - lu(i,692) * b(i,111)
         b(i,69) = b(i,69) - lu(i,691) * b(i,111)
         b(i,68) = b(i,68) - lu(i,690) * b(i,111)
         b(i,47) = b(i,47) - lu(i,689) * b(i,111)
         b(i,110) = b(i,110) * lu(i,677)
         b(i,109) = b(i,109) - lu(i,676) * b(i,110)
         b(i,105) = b(i,105) - lu(i,675) * b(i,110)
         b(i,103) = b(i,103) - lu(i,674) * b(i,110)
         b(i,95) = b(i,95) - lu(i,673) * b(i,110)
         b(i,81) = b(i,81) - lu(i,672) * b(i,110)
         b(i,68) = b(i,68) - lu(i,671) * b(i,110)
         b(i,45) = b(i,45) - lu(i,670) * b(i,110)
         b(i,109) = b(i,109) * lu(i,662)
         b(i,103) = b(i,103) - lu(i,661) * b(i,109)
         b(i,108) = b(i,108) * lu(i,650)
         b(i,88) = b(i,88) - lu(i,649) * b(i,108)
         b(i,34) = b(i,34) - lu(i,648) * b(i,108)
         b(i,107) = b(i,107) * lu(i,637)
         b(i,103) = b(i,103) - lu(i,636) * b(i,107)
         b(i,106) = b(i,106) * lu(i,625)
         b(i,105) = b(i,105) - lu(i,624) * b(i,106)
         b(i,68) = b(i,68) - lu(i,623) * b(i,106)
         b(i,53) = b(i,53) - lu(i,622) * b(i,106)
         b(i,105) = b(i,105) * lu(i,616)
         b(i,104) = b(i,104) * lu(i,607)
         b(i,103) = b(i,103) - lu(i,606) * b(i,104)
         b(i,103) = b(i,103) * lu(i,602)
         b(i,102) = b(i,102) * lu(i,587)
         b(i,89) = b(i,89) - lu(i,586) * b(i,102)
         b(i,75) = b(i,75) - lu(i,585) * b(i,102)
         b(i,49) = b(i,49) - lu(i,584) * b(i,102)
       enddo
        END SUBROUTINE lu_slv07_vec

#ifdef DOINLINE
!DIR$ ATTRIBUTES FORCEINLINE :: lu_slv08_vec
#else
!DIR$ ATTRIBUTES NOINLINE :: lu_slv08_vec
#endif
        SUBROUTINE lu_slv08_vec(ncol,nb,nz,lu, b)
            USE shr_kind_mod, ONLY: r8 => shr_kind_r8
            IMPLICIT NONE
            !-----------------------------------------------------------------------
            ! ... Dummy args
            !-----------------------------------------------------------------------
            integer :: ncol,nb,nz
            REAL(KIND=r8), intent(in) :: lu(ncol,nz)
            REAL(KIND=r8), intent(inout) :: b(ncol,nb)
            !-----------------------------------------------------------------------
            ! ... Local variables
            !-----------------------------------------------------------------------
            integer :: i
            !-----------------------------------------------------------------------
            ! ... solve L * y = b
            !-----------------------------------------------------------------------
!DIR$ ASSUME_ALIGNED lu:64
!DIR$ ASSUME_ALIGNED b:64
      do i=1,ncol
         b(i,101) = b(i,101) * lu(i,572)
         b(i,97) = b(i,97) - lu(i,571) * b(i,101)
         b(i,45) = b(i,45) - lu(i,570) * b(i,101)
         b(i,100) = b(i,100) * lu(i,560)
         b(i,93) = b(i,93) - lu(i,559) * b(i,100)
         b(i,29) = b(i,29) - lu(i,558) * b(i,100)
         b(i,99) = b(i,99) * lu(i,552)
         b(i,36) = b(i,36) - lu(i,551) * b(i,99)
         b(i,98) = b(i,98) * lu(i,540)
         b(i,80) = b(i,80) - lu(i,539) * b(i,98)
         b(i,59) = b(i,59) - lu(i,538) * b(i,98)
         b(i,97) = b(i,97) * lu(i,530)
         b(i,47) = b(i,47) - lu(i,529) * b(i,97)
         b(i,96) = b(i,96) * lu(i,517)
         b(i,80) = b(i,80) - lu(i,516) * b(i,96)
         b(i,52) = b(i,52) - lu(i,515) * b(i,96)
         b(i,95) = b(i,95) * lu(i,510)
         b(i,81) = b(i,81) - lu(i,509) * b(i,95)
         b(i,94) = b(i,94) * lu(i,494)
         b(i,75) = b(i,75) - lu(i,493) * b(i,94)
         b(i,93) = b(i,93) * lu(i,486)
         b(i,29) = b(i,29) - lu(i,485) * b(i,93)
         b(i,92) = b(i,92) * lu(i,476)
         b(i,87) = b(i,87) - lu(i,475) * b(i,92)
         b(i,86) = b(i,86) - lu(i,474) * b(i,92)
         b(i,85) = b(i,85) - lu(i,473) * b(i,92)
         b(i,72) = b(i,72) - lu(i,472) * b(i,92)
         b(i,58) = b(i,58) - lu(i,471) * b(i,92)
         b(i,91) = b(i,91) * lu(i,462)
         b(i,68) = b(i,68) - lu(i,461) * b(i,91)
         b(i,44) = b(i,44) - lu(i,460) * b(i,91)
         b(i,35) = b(i,35) - lu(i,459) * b(i,91)
         b(i,90) = b(i,90) * lu(i,452)
         b(i,89) = b(i,89) * lu(i,442)
         b(i,67) = b(i,67) - lu(i,441) * b(i,89)
         b(i,88) = b(i,88) * lu(i,433)
         b(i,34) = b(i,34) - lu(i,432) * b(i,88)
         b(i,87) = b(i,87) * lu(i,425)
         b(i,86) = b(i,86) - lu(i,424) * b(i,87)
         b(i,85) = b(i,85) - lu(i,423) * b(i,87)
         b(i,78) = b(i,78) - lu(i,422) * b(i,87)
         b(i,61) = b(i,61) - lu(i,421) * b(i,87)
         b(i,86) = b(i,86) * lu(i,414)
         b(i,61) = b(i,61) - lu(i,413) * b(i,86)
         b(i,85) = b(i,85) * lu(i,405)
         b(i,84) = b(i,84) * lu(i,397)
         b(i,33) = b(i,33) - lu(i,396) * b(i,84)
         b(i,83) = b(i,83) * lu(i,388)
         b(i,56) = b(i,56) - lu(i,387) * b(i,83)
         b(i,24) = b(i,24) - lu(i,386) * b(i,83)
         b(i,82) = b(i,82) * lu(i,379)
         b(i,81) = b(i,81) * lu(i,375)
         b(i,80) = b(i,80) * lu(i,369)
         b(i,79) = b(i,79) * lu(i,358)
         b(i,77) = b(i,77) - lu(i,357) * b(i,79)
         b(i,76) = b(i,76) - lu(i,356) * b(i,79)
         b(i,55) = b(i,55) - lu(i,355) * b(i,79)
         b(i,49) = b(i,49) - lu(i,354) * b(i,79)
         b(i,78) = b(i,78) * lu(i,344)
         b(i,72) = b(i,72) - lu(i,343) * b(i,78)
         b(i,61) = b(i,61) - lu(i,342) * b(i,78)
         b(i,77) = b(i,77) * lu(i,335)
         b(i,42) = b(i,42) - lu(i,334) * b(i,77)
         b(i,76) = b(i,76) * lu(i,324)
         b(i,55) = b(i,55) - lu(i,323) * b(i,76)
         b(i,75) = b(i,75) * lu(i,319)
         b(i,74) = b(i,74) * lu(i,312)
         b(i,73) = b(i,73) * lu(i,303)
         b(i,72) = b(i,72) * lu(i,296)
         b(i,71) = b(i,71) * lu(i,288)
         b(i,70) = b(i,70) * lu(i,280)
         b(i,69) = b(i,69) * lu(i,272)
         b(i,68) = b(i,68) * lu(i,268)
         b(i,67) = b(i,67) * lu(i,260)
         b(i,66) = b(i,66) * lu(i,254)
         b(i,65) = b(i,65) * lu(i,246)
         b(i,51) = b(i,51) - lu(i,245) * b(i,65)
         b(i,64) = b(i,64) * lu(i,241)
         b(i,63) = b(i,63) * lu(i,233)
         b(i,62) = b(i,62) * lu(i,227)
         b(i,61) = b(i,61) * lu(i,222)
         b(i,60) = b(i,60) * lu(i,215)
         b(i,59) = b(i,59) * lu(i,208)
         b(i,58) = b(i,58) * lu(i,201)
         b(i,57) = b(i,57) * lu(i,194)
         b(i,56) = b(i,56) * lu(i,189)
         b(i,55) = b(i,55) * lu(i,184)
         b(i,54) = b(i,54) * lu(i,178)
         b(i,53) = b(i,53) * lu(i,172)
         b(i,52) = b(i,52) * lu(i,166)
         b(i,51) = b(i,51) * lu(i,160)
         b(i,50) = b(i,50) * lu(i,154)
         b(i,49) = b(i,49) * lu(i,150)
         b(i,48) = b(i,48) * lu(i,142)
         b(i,47) = b(i,47) * lu(i,139)
         b(i,46) = b(i,46) * lu(i,134)
         b(i,45) = b(i,45) * lu(i,130)
         b(i,44) = b(i,44) * lu(i,125)
         b(i,43) = b(i,43) * lu(i,120)
         b(i,42) = b(i,42) * lu(i,115)
         b(i,41) = b(i,41) * lu(i,108)
         b(i,40) = b(i,40) * lu(i,102)
         b(i,39) = b(i,39) * lu(i,96)
         b(i,38) = b(i,38) * lu(i,90)
         b(i,37) = b(i,37) * lu(i,84)
         b(i,36) = b(i,36) * lu(i,80)
         b(i,26) = b(i,26) - lu(i,79) * b(i,36)
         b(i,35) = b(i,35) * lu(i,75)
         b(i,34) = b(i,34) * lu(i,72)
         b(i,33) = b(i,33) * lu(i,69)
         b(i,32) = b(i,32) * lu(i,65)
         b(i,31) = b(i,31) * lu(i,61)
         b(i,30) = b(i,30) * lu(i,57)
         b(i,29) = b(i,29) * lu(i,55)
         b(i,28) = b(i,28) * lu(i,53)
         b(i,27) = b(i,27) - lu(i,52) * b(i,28)
         b(i,27) = b(i,27) * lu(i,50)
         b(i,26) = b(i,26) * lu(i,47)
         b(i,25) = b(i,25) * lu(i,44)
         b(i,24) = b(i,24) * lu(i,41)
         b(i,23) = b(i,23) * lu(i,38)
         b(i,22) = b(i,22) * lu(i,33)
         b(i,21) = b(i,21) * lu(i,29)
         b(i,20) = b(i,20) * lu(i,26)
         b(i,19) = b(i,19) * lu(i,23)
         b(i,18) = b(i,18) * lu(i,20)
         b(i,17) = b(i,17) * lu(i,17)
         b(i,16) = b(i,16) * lu(i,16)
         b(i,15) = b(i,15) * lu(i,15)
         b(i,14) = b(i,14) * lu(i,14)
         b(i,13) = b(i,13) * lu(i,13)
         b(i,12) = b(i,12) * lu(i,12)
         b(i,11) = b(i,11) * lu(i,11)
         b(i,10) = b(i,10) * lu(i,10)
         b(i,9) = b(i,9) * lu(i,9)
         b(i,8) = b(i,8) * lu(i,8)
         b(i,7) = b(i,7) * lu(i,7)
         b(i,6) = b(i,6) * lu(i,6)
         b(i,5) = b(i,5) * lu(i,5)
         b(i,4) = b(i,4) * lu(i,4)
         b(i,3) = b(i,3) * lu(i,3)
         b(i,2) = b(i,2) * lu(i,2)
         b(i,1) = b(i,1) * lu(i,1)
      enddo
        END SUBROUTINE lu_slv08_vec

        SUBROUTINE lu_slv_vec(ncol,nb,nz,lu, b)
            USE shr_kind_mod, ONLY: r8 => shr_kind_r8
            IMPLICIT NONE
            !-----------------------------------------------------------------------
            ! ... Dummy args
            !-----------------------------------------------------------------------
            integer :: ncol,nb,nz
            REAL(KIND=r8), intent(in) :: lu(ncol,nz)
            REAL(KIND=r8), intent(inout) :: b(ncol,nb)
      call lu_slv01_vec( ncol,nb,nz,lu, b )
      call lu_slv02_vec( ncol,nb,nz,lu, b )
      call lu_slv03_vec( ncol,nb,nz,lu, b )
      call lu_slv04_vec( ncol,nb,nz,lu, b )
      call lu_slv05_vec( ncol,nb,nz,lu, b )
      call lu_slv06_vec( ncol,nb,nz,lu, b )
      call lu_slv07_vec( ncol,nb,nz,lu, b )
      call lu_slv08_vec( ncol,nb,nz,lu, b )
        END SUBROUTINE lu_slv_vec
    END MODULE mo_lu_solve_vec
